public T CreateProxy <T>(IClientPipeline pipeline) where T : class { ContractMetadata contract = BoltFramework.GetContract(typeof(T)); var interceptor = new ChannelInterceptor(); var options = new ProxyGenerationOptions { BaseTypeForInterfaceProxy = _baseProxy }; ProxyMetadata metadata = _metadatas.GetOrAdd(typeof(T), v => new ProxyMetadata(_baseProxy)); var proxy = _generator.CreateInterfaceProxyWithoutTarget <T>( options, interceptor); ProxyBase proxyBase = (ProxyBase)(object)proxy; proxyBase.Contract = contract; proxyBase.Pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); interceptor.Proxy = proxyBase; interceptor.Metadata = metadata; return(proxy); }
public void AddInterceptor(int index, ChannelInterceptor interceptor) { this.ChannelInterceptor.Insert(index, interceptor); }
public void RemoveInterceptor(ChannelInterceptor interceptor) { this.ChannelInterceptor.Remove(interceptor); }
public void AddInterceptor(ChannelInterceptor interceptor) { this.ChannelInterceptor.Add(interceptor); }