Пример #1
0
 public static IServiceCollection UseSimpleRpcClient(this IServiceCollection service, params Assembly[] assemblies)
 {
     return(service.AddSingleton(i =>
     {
         var metadata = new RpcClientMetadata(assemblies);
         foreach (var item in metadata.metadatas)
         {
             item.Value.Codec = i.GetRequiredService(item.Value.CodecType) as CodecAttribute;
         }
         return metadata;
     })
            .AddSingleton <ITcpClient, NettyTcpClient>()
            .AddSingleton <IUdpClient, UdpClient>()
            .AddSingleton <RpcClient <ITcpClient>, RpcClient <ITcpClient> >()
            .AddSingleton <RpcClient <IUdpClient>, RpcClient <IUdpClient> >()
            .AddTransient <NetworkClientInitializer <IUdpClient>, RpcUdpClientInitializer>()
            .AddSingleton <IRpcClientFactory, SimpleRpcClientFactory>()
            .AddSingleton <IDynamicProxyGenerator, DynamicProxyGenerator>()
            .AddTransient <NetworkClientInitializer <ITcpClient>, RpcTcpClientInitializer>()
            .AddSingleton <ClientHandler, ClientHandler>()
            .AddSingleton <ICallBackHandler <int>, CallBackHandler <int> >());
 }
Пример #2
0
 public RpcClient(RpcClientMetadata metadatas, T client, ICallBackHandler <int> callBackHandler)
 {
     this.metadatas       = metadatas;
     this.client          = client;
     this.callBackHandler = callBackHandler;
 }