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)); }
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(); }; }
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(); }; }
public ServiceCallBuilder(TService instance, string address) { this.instance = instance; factory = new ServiceChannelFactory <TService>(new EndpointAddress(address)); }