public override void RegisterInterceptor(Type modelType, ContentDataInterceptor interceptor) { Validator.ThrowIfNull("type", (object)modelType); Validator.ThrowIfNull("interceptor", (object)interceptor); lock (SyncRoot) { if (IsInterceptableType(modelType)) { var interceptorType = interceptor.GetType(); string interceptorReferenceKey = interceptorType.Name + modelType.AssemblyQualifiedName; if (!Container.Kernel.HasComponent(interceptorReferenceKey)) { Container.Register( Component.For <IInterceptor>().ImplementedBy(interceptorType).LifeStyle.Singleton.Named(interceptorReferenceKey)); } if (!Container.Kernel.HasComponent(modelType)) { Container.Register( Component .For(modelType) .ImplementedBy(modelType) .LifeStyle.Transient .Interceptors( InterceptorReference.ForKey(interceptorReferenceKey), InterceptorReference.ForType <EPiPropertiesInterceptor>()) .SelectedWith(ContentProxyInterceptorSelector) .Anywhere .Proxy.Hook(ServiceLocator.Current.GetInstance <ContentDataInterceptorHook>() ) /* !!! */ ); } } else { if (!Container.Kernel.HasComponent(modelType)) { Container.Register(Component.For(modelType).ImplementedBy(modelType).LifeStyle.Transient); } } RegisterPropertyInterceptor(); } }
public override void RegisterInterceptor(Type modelType, ContentDataInterceptor interceptor) { Validator.ThrowIfNull("type", (object)modelType); Validator.ThrowIfNull("interceptor", (object)interceptor); lock (SyncRoot) { if (IsInterceptableType(modelType)) { var interceptorType = interceptor.GetType(); string interceptorReferenceKey = interceptorType.Name + modelType.AssemblyQualifiedName; if (!Container.Kernel.HasComponent(interceptorReferenceKey)) { Container.Register( Component.For<IInterceptor>().ImplementedBy(interceptorType).LifeStyle.Singleton.Named(interceptorReferenceKey)); } if (!Container.Kernel.HasComponent(modelType)) { Container.Register( Component .For(modelType) .ImplementedBy(modelType) .LifeStyle.Transient .Interceptors( InterceptorReference.ForKey(interceptorReferenceKey), InterceptorReference.ForType<EPiPropertiesInterceptor>()) .SelectedWith(ContentProxyInterceptorSelector) .Anywhere .Proxy.Hook(ServiceLocator.Current.GetInstance<ContentDataInterceptorHook>() ) /* !!! */ ); } } else { if (!Container.Kernel.HasComponent(modelType)) { Container.Register(Component.For(modelType).ImplementedBy(modelType).LifeStyle.Transient); } } RegisterPropertyInterceptor(); } }
public ExtendedContentTypeModelScanner(ITypeScannerLookup typeScannerLookup, ContentTypeModelRegister typeModelRegister, ContentModelValidator modelValidator, ContentTypeModelRepository contentTypeModelRepository, IContentTypeModelAssigner contentTypeModelAssigner, ContentDataInterceptorHandler modelTypeInterceptorHandler, ContentDataInterceptor modelTypeInterceptor, IContentTypeModelFilter[] filters, IEnumerable <ContentScannerExtension> registerExtensions, IAvailableModelSettingsRepository availableContentTypeService, IContentTypeModelScannerEventsRaiser contentTypeModelScannerEvents) : base(typeScannerLookup, typeModelRegister, modelValidator, contentTypeModelRepository, contentTypeModelAssigner, modelTypeInterceptorHandler, modelTypeInterceptor, filters, registerExtensions, availableContentTypeService, contentTypeModelScannerEvents) { TypeScannerLookup = typeScannerLookup; }