コード例 #1
0
        public static I Create <I>(Uri serviceAddress, ActorId id, IHeaderAccessor accessor) where I : class, IActor
        {
            string applicationName = string.Empty,
                  serviceName      = string.Empty;

            AddressHelper.EvaluateAddress(serviceAddress, out applicationName, out serviceName);
            return(ActorProxy.Create <I>(id, applicationName, serviceName, new ProxyOperationInvoker(Invokers), new Extensions.Services.ProxyMessageInterceptor(Interceptors, accessor)));
        }
コード例 #2
0
        public static I Create <I>(Uri serviceAddress, string listenerName, IHeaderAccessor accessor) where I : class, IService
        {
            string applicationName = string.Empty,
                   serviceName     = string.Empty;

            Debug.Assert(listenerName.Equals(typeof(I).Name));

            AddressHelper.EvaluateAddress(serviceAddress, out applicationName, out serviceName);
            return(ServiceProxy.Create <I>(applicationName, serviceName, new ProxyOperationInvoker(Invokers), new ProxyMessageInterceptor(Interceptors, accessor)));
        }
コード例 #3
0
 protected abstract void OnCopyCommonHeadersFrom(IHeaderAccessor accessor);
コード例 #4
0
 protected abstract void OnAddCommonHeaders(IHeaderAccessor accessor);
コード例 #5
0
 public static I ForAccessor <I>(string instanceName, IHeaderAccessor accessor) where I : class, IActor
 {
     Debug.Assert(typeof(I).Namespace.Contains("Accessor"), "Invalid resource call. Use only the accesor interface to access a resource.");
     return(Create <I>(Addressing.Accessor <I>(), instanceName, accessor));
 }
コード例 #6
0
 static I Create <I>(Uri actorAddress, string instanceName, IHeaderAccessor accessor)  where I : class, IActor
 {
     Debug.Assert(typeof(I).IsInterface);
     return(ProxyFactory.Create <I>(actorAddress, new ActorId(instanceName), accessor));
 }
コード例 #7
0
 public static I ForMicroservice <I>(IHeaderAccessor accessor) where I : class, IService
 {
     Debug.Assert(typeof(I).Namespace.Contains("Manager"), "Invalid microservice call. Use only the Manager interface to access a microservice.");
     return(Create <I>(Addressing.Microservice <I>(), accessor));
 }
コード例 #8
0
 static I Create <I>(Uri serviceAddress, IHeaderAccessor accessor) where I : class, IService
 {
     Debug.Assert(typeof(I).IsInterface);
     return(ProxyFactory.Create <I>(serviceAddress, Naming.Listener <I>(), accessor));
 }
コード例 #9
0
 protected override void OnAddCommonHeaders(IHeaderAccessor accessor)
 {
     accessor.AddHeader(OriginationHelper.Create());
 }
コード例 #10
0
 protected override void OnCopyCommonHeadersTo(IHeaderAccessor accessor)
 {
     accessor.CopyHeaderTo <OriginationContext>();
 }
コード例 #11
0
 protected override void OnCopyCommonHeadersFrom(IHeaderAccessor accessor)
 {
     accessor.CopyHeaderFrom <MyContext>();
 }
コード例 #12
0
 protected override void OnAddCommonHeaders(IHeaderAccessor accessor)
 {
     accessor.AddHeader <MyContext>(new MyContext {
         Value = "Call chain start"
     });
 }
コード例 #13
0
 public ProxyMessageInterceptor(IEnumerable <IProxyHeaderInterceptor> interceptors, IHeaderAccessor accessor)
 {
     Interceptors = interceptors;
     Accessor     = accessor;
 }