依赖注入GRPC客户端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/// <summary>
/// 注入grpc接口
/// </summary>
/// <typeparam name="TService">需要创建连接的接口</typeparam>
/// <param name="services"></param>
public static void AddGrpcScoped<TService>(this IServiceCollection services) where TService : class
{              var grpcChannel = GrpcChannel.ForAddress('http://url', new GrpcChannelOptions
        {
            HttpHandler = new SocketsHttpHandler
            {
                EnableMultipleHttp2Connections = true,
            }
         });<br><br>          var grpcService = grpcChannel.CreateGrpcService<IProductService>();  
    services.AddScoped<TService>(sp =>
    {
        return grpcService;
    });
}<br>
 

 

复制代码

使用:

readonly IProductAppService _productAppService; public WeChatController(IProductAppService productAppService) { _productAppService = productAppService; }


        /// <summary>
        /// 获取一个登录用的qrcode
        /// </summary>
        /// <returns></returns>
        [Route("test"), AllowAnonymous]
        public async Task<IActionResult> test()
        {
            try
            {
                var model = await _productAppService.GetListAsync();
                return new JsonResult(model);

            } catch (RpcException e)
            {

            }
         }



复制代码

 

posted @   亲爱的老王哥  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示