public void BindWithInterceptors <TProxySelector>(IServiceCollection services, Action <InterceptorOption> option = null) where TProxySelector : class, IProxySelector, new() { string nameSpaceStr = null; if (option != null) { InterceptorOption interceptorOption = new InterceptorOption(); option.Invoke(interceptorOption); nameSpaceStr = interceptorOption.namespaceStr; } var proxySelectorCnt = services.FirstOrDefault(t => t.ServiceType.Equals(typeof(IProxySelector))); if (proxySelectorCnt == null) { services.AddSingleton(typeof(IProxySelector), typeof(TProxySelector)); } var interceptorContextCnt = services.FirstOrDefault(t => t.ServiceType.Equals(typeof(IProxySelector))); if (interceptorContextCnt == null) { services.AddScoped <IInterceptorContext, InterceptorContext>(); } var proxyGeneratorCnt = services.FirstOrDefault(t => t.ServiceType.Equals(typeof(IProxySelector))); if (proxyGeneratorCnt == null) { services.AddScoped <IProxyGenerator, ProxyGenerator>(); } BindType <ITransientType, TProxySelector>(services, nameSpaceStr); BindType <IScopedType, TProxySelector>(services, nameSpaceStr); BindType <ISingletonType, TProxySelector>(services, nameSpaceStr); }
public void BindWithInterceptors(IServiceCollection services, Action <InterceptorOption> option = null) { string nameSpaceStr = null; if (option != null) { InterceptorOption interceptorOption = new InterceptorOption(); option.Invoke(interceptorOption); nameSpaceStr = interceptorOption.namespaceStr; } var proxySelectorCnt = services.FirstOrDefault(t => t.ServiceType.Equals(typeof(IProxySelector))); if (proxySelectorCnt == null) { services.AddSingleton(typeof(IProxySelector), new AttributeBaseProxySelector()); } BindType <ITransientType, AttributeBaseProxySelector>(services, nameSpaceStr); BindType <IScopedType, AttributeBaseProxySelector>(services, nameSpaceStr); BindType <ISingletonType, AttributeBaseProxySelector>(services, nameSpaceStr); }