private void Setup(TfsDriveParameter dynamicParameters) { Container = new UnityContainer(); Container.AddNewExtension <Interception>(); //Container.RegisterType<IContainer, TfsDrive>(new TransientLifetimeManager(), new InterceptionBehavior<PolicyInjectionBehavior>(), new Interceptor<InterfaceInterceptor>()); Container.RegisterType <IContainer, TfsDrive>(new TransientLifetimeManager()); Container.RegisterType <CachingLifetimeManager>(new ContainerControlledLifetimeManager()); if (null != dynamicParameters.DataService) { Container.RegisterInstance(dynamicParameters.DataService); } else { Container.RegisterType <ITfsDataService, TfsRestDataService>(new ContainerControlledLifetimeManager(), new InjectionConstructor( new InjectionParameter <string>(dynamicParameters.Url), new InjectionParameter <string>(dynamicParameters.AccessToken) ), new InterceptionBehavior <PolicyInjectionBehavior>(), new Interceptor <InterfaceInterceptor>()); } PolicyDefinition loggingPolicy = Container.Configure <Interception>().AddPolicy("logging"); loggingPolicy.AddMatchingRule <AssemblyMatchingRule>(new InjectionConstructor(new InjectionParameter(GetType().Assembly.FullName))); loggingPolicy.AddCallHandler <LoggingCallHandler>(new ContainerControlledLifetimeManager(), new InjectionConstructor()); loggingPolicy.AddCallHandler <PerformanceMeasurementHandler>(new ContainerControlledLifetimeManager(), new InjectionConstructor()); loggingPolicy.AddCallHandler <CachingCallHandler>(Container.Resolve <CachingLifetimeManager>(), new InjectionConstructor()); TfsDataService = Container.Resolve <ITfsDataService>(); }
internal void Configure(PolicyDefinition policyDefinition) { if (string.IsNullOrEmpty(this.TypeName)) { policyDefinition.AddCallHandler(this.Name); } else { policyDefinition.AddCallHandler( this.Type, this.Name, this.Lifetime != null ? this.Lifetime.CreateLifetimeManager() : null, this.Injection != null ? this.Injection.GetInjectionMembers() : new InjectionMember[0]); } }
internal void Configure(IUnityContainer container, PolicyDefinition policyDefinition) { if (string.IsNullOrEmpty(this.TypeName)) { policyDefinition.AddCallHandler(this.Name); } else { Type handlerType = TypeResolver.ResolveType(TypeName); IEnumerable <InjectionMember> injectionMembers = Injection.SelectMany( element => element.GetInjectionMembers(container, typeof(ICallHandler), handlerType, Name)); policyDefinition.AddCallHandler(handlerType, Lifetime.CreateLifetimeManager(), injectionMembers.ToArray()); } }
internal void Configure(IUnityContainer container, PolicyDefinition policyDefinition) { if (string.IsNullOrEmpty(this.TypeName)) { policyDefinition.AddCallHandler(this.Name); } else { Type handlerType = TypeResolver.ResolveType(TypeName); IEnumerable<InjectionMember> injectionMembers = Injection.SelectMany( element => element.GetInjectionMembers(container, typeof(ICallHandler), handlerType, Name)); policyDefinition.AddCallHandler(handlerType, Lifetime.CreateLifetimeManager(), injectionMembers.ToArray()); } }
static H容器() { _IUnityContainer = new UnityContainer(); _Interception = _IUnityContainer.AddNewExtension <Interception>().Configure <Interception>(); _PolicyDefinition = _Interception.AddPolicy("MyPolicy"); _PolicyDefinition.AddMatchingRule <AlwaysMatchingRule>(); _PolicyDefinition.AddCallHandler <LoggerCallHandler>(new ContainerControlledLifetimeManager()); }
public static PolicyDefinition AddSingletonCallHandler <T>( this PolicyDefinition policyDefinition) where T : ICallHandler { if (policyDefinition == null) { throw new ArgumentNullException(nameof(policyDefinition)); } return(policyDefinition .AddCallHandler <T>(new ContainerControlledLifetimeManager()) ); }
public void TestInitialize() { Container = new UnityContainer(); Container.AddNewExtension <Interception>(); Container.RegisterType <ITenantStore, TenantStore>(new InterceptionBehavior <PolicyInjectionBehavior>(), new Interceptor <InterfaceInterceptor>()); Container.RegisterType <ISurveyStore, SurveyStore>(new InterceptionBehavior <PolicyInjectionBehavior>(), new Interceptor <InterfaceInterceptor>()); InjectionProperty first = new InjectionProperty("Order", 1); InjectionProperty second = new InjectionProperty("Order", 2); PolicyDefinition loggingPolicy = Container.Configure <Interception>().AddPolicy("logging"); loggingPolicy.AddMatchingRule <AssemblyMatchingRule>(new InjectionConstructor(new InjectionParameter(GetType().Assembly.FullName))); loggingPolicy.AddCallHandler <LoggingCallHandler>(new ContainerControlledLifetimeManager(), new InjectionConstructor(), first); PolicyDefinition cachingPolicy = Container.Configure <Interception>().AddPolicy("caching"); cachingPolicy.AddMatchingRule <AssemblyMatchingRule>(new InjectionConstructor(new InjectionParameter(GetType().Assembly.FullName))); cachingPolicy.AddCallHandler <CachingCallHandler>(new ContainerControlledLifetimeManager(), new InjectionConstructor(), second); }