使用旧版 .NET 框架的 gRPC

问题描述 投票:0回答:1

我所看到的有关 gRPC 的所有内容似乎都在 Dotnet Core 中。

不幸的是,我只能使用 .NET Framework,因为我正在开发旧版应用程序。

我想向其中添加一些 gRPC 端点。

这可以以任何合理的方式完成吗?

c# .net grpc
1个回答
0
投票

Grpc.Core
软件包包含(旧版)非托管客户端和服务器代码,可在 .NET Framework 上使用;典型用法是:

Server server = new Server
{
    Ports = { new ServerPort("localhost", 10042, ServerCredentials.Insecure) },
    Services = {
        Calculator.BindService(calc),
        TimeService.BindService(clock),
    }
};
server.Start();
Console.WriteLine("Server running... press any key");
Console.ReadKey();
await server.ShutdownAsync();

客户会更像:

var channel = new Channel("localhost", 10042, ChannelCredentials.Insecure);
try
{
    var calc = new Calculator.CalculatorClient(channel);
    for (int i = 0; i < 5; i++)
    {
        using var ma = calc.MultiplyAsync(new MultiplyRequest { X = i, Y = i });
        var calcResult = await ma.ResponseAsync;
        Console.WriteLine(calcResult.Result);
    }



    var clock = new TimeService.TimeServiceClient(channel);
    using var subResult = clock.Subscribe(new Empty());
    var reader = subResult.ResponseStream;
    while (await reader.MoveNext(default))
    {
        var time = reader.Current.Time;
        Console.WriteLine($"The time is now {time}");
    }
}
finally
{
    await channel.ShutdownAsync();
}

所以:是的。

© www.soinside.com 2019 - 2024. All rights reserved.