コード例 #1
0
        public static Invocation MakeInvocation(ServiceChannelFactory <TService> factory, TService instance, MethodCallExpression methodCall)
        {
            if (ReferenceEquals(instance, null))
            {
                return(new ApmInvocation(factory.CreateChannel(), methodCall));
            }

            return(new DirectInvocation(instance, methodCall));
        }
コード例 #2
0
        public ServiceCommand(ServiceChannelFactory <TService> factory, TService instance, Expression <Action <TService> > expression)
        {
            invocation = ServiceCall <TService> .MakeInvocation(factory, instance, (MethodCallExpression)expression.Body);

            invocation.Completed = (sender, args) =>
            {
                Exception = invocation.Exception;
                SignalCompleted();
            };
        }
コード例 #3
0
        public ServiceQuery(ServiceChannelFactory <TService> factory, TService instance, Expression <Func <TService, TResult> > expression)
        {
            invocation = ServiceCall <TService> .MakeInvocation(factory, instance, (MethodCallExpression)expression.Body);

            invocation.Completed = (sender, args) =>
            {
                Result    = (TResult)invocation.Result;
                Exception = invocation.Exception;

                SignalCompleted();
            };
        }
コード例 #4
0
 public ServiceCallBuilder(TService instance, string address)
 {
     this.instance = instance;
     factory       = new ServiceChannelFactory <TService>(new EndpointAddress(address));
 }