예제 #1
0
        public ServiceProxyInterceptor(
            Type serviceType,
            IServiceResolver serviceResolver,
            RpcHandler handler,
            RpcMethodFixture fixture,
            IServiceLoadBalancingStrategy strategy)
        {
            _serviceType     = serviceType;
            _serviceResolver = serviceResolver;

            _handler  = handler;
            _fixture  = fixture;
            _strategy = strategy;
        }
예제 #2
0
        public T CreateServiceProxy <T>(RpcHandler handler, RpcMethodFixture fixture, IServiceLoadBalancingStrategy strategy)
        {
            var proxy = _proxyGenerator.CreateInterfaceProxyWithoutTarget(
                typeof(T),
                new ProxyGenerationOptions(),
                new IInterceptor[]
            {
                new ServiceProxyInterceptor(
                    typeof(T),
                    _serviceResolver,
                    handler,
                    fixture,
                    strategy)
            });

            return((T)proxy);
        }
예제 #3
0
 public T CreateServiceProxy <T>(RpcHandler handler, RpcMethodFixture fixture)
 {
     return(CreateServiceProxy <T>(handler, fixture, new RandomServiceLoadBalancingStrategy()));
 }