Scaffold .NET client projects

This commit is contained in:
Joseph Doherty
2026-04-26 19:25:07 -04:00
parent 044b16c5db
commit 7331c6157a
15 changed files with 418 additions and 0 deletions
@@ -0,0 +1,41 @@
using Grpc.Net.Client;
using MxGateway.Contracts.Proto;
namespace MxGateway.Client;
/// <summary>
/// Provides the initial .NET client entry point and raw generated gRPC client.
/// </summary>
public sealed class MxGatewayClient : IAsyncDisposable
{
private readonly GrpcChannel _channel;
private MxGatewayClient(GrpcChannel channel)
{
_channel = channel;
RawClient = new MxAccessGateway.MxAccessGatewayClient(channel);
}
public MxAccessGateway.MxAccessGatewayClient RawClient { get; }
public static MxGatewayClient Create(MxGatewayClientOptions options)
{
ArgumentNullException.ThrowIfNull(options);
options.Validate();
var channel = GrpcChannel.ForAddress(
options.Endpoint,
new GrpcChannelOptions
{
LoggerFactory = options.LoggerFactory,
});
return new MxGatewayClient(channel);
}
public ValueTask DisposeAsync()
{
_channel.Dispose();
return ValueTask.CompletedTask;
}
}