public static IServiceContainer RegisterDynamicProxy(this IServiceContainer container, IAspectConfiguration aspectConfig = null, Action <IAspectConfiguration> configure = null) { if (container == null) { throw new ArgumentNullException(nameof(container)); } aspectConfig = aspectConfig ?? new AspectConfiguration(); foreach (var m in _nonAspect) { aspectConfig.NonAspectPredicates.AddNamespace(m); } configure?.Invoke(aspectConfig); container.RegisterInstance <IAspectConfiguration>(aspectConfig) .Register(typeof(IManyEnumerable <>), typeof(ManyEnumerable <>)) .RegisterInstance <IServiceContainer>(container) .Register <IServiceProvider, LightInjectServiceResolver>() .Register <IServiceResolver, LightInjectServiceResolver>() .Register <IAspectContextFactory, AspectContextFactory>() .Register <IAspectActivatorFactory, AspectActivatorFactory>() .Register <IProxyGenerator, ProxyGenerator>() .Register <IParameterInterceptorSelector, ParameterInterceptorSelector>() .Register <IPropertyInjectorFactory, PropertyInjectorFactory>() .Register <IInterceptorCollector, InterceptorCollector>() .Register <IInterceptorSelector, ConfigureInterceptorSelector>() .Register <IInterceptorSelector, AttributeInterceptorSelector>() .Register <IAdditionalInterceptorSelector, AttributeAdditionalInterceptorSelector>() .Register <IAspectValidatorBuilder, AspectValidatorBuilder>() .Register <IAspectBuilderFactory, AspectBuilderFactory>() .Register <IProxyTypeGenerator, ProxyTypeGenerator>() .Register <IAspectCachingProvider, AspectCachingProvider>() .Register <IAspectExceptionWrapper, AspectExceptionWrapper>(); container.Decorate(aspectConfig.CreateDecorator()); return(container); }
private void RegisterContainer() { _diContainer.RegisterInstance(typeof(IServiceFactory), _diContainer); }