public InstanceDescriptorFactory([NotNull] IPropertyReflector propertyReflector, [NotNull] IPropertyValueFactoryProvider propertyValueFactoryProvider, [NotNull] IPropertyValueHandlerFactory propertyValueHandlerFactory, [NotNull] ITypeAliasWalker typeAliasWalker) { if (propertyReflector == null) { throw new ArgumentNullException(nameof(propertyReflector)); } if (propertyValueFactoryProvider == null) { throw new ArgumentNullException(nameof(propertyValueFactoryProvider)); } if (propertyValueHandlerFactory == null) { throw new ArgumentNullException(nameof(propertyValueHandlerFactory)); } if (typeAliasWalker == null) { throw new ArgumentNullException(nameof(typeAliasWalker)); } this.propertyReflector = propertyReflector; this.propertyValueFactoryProvider = propertyValueFactoryProvider; this.propertyValueHandlerFactory = propertyValueHandlerFactory; this.typeAliasWalker = typeAliasWalker; }
public TypeInstanciator([NotNull] IPropertyValueFactoryProvider propertyValueFactoryProvider, [NotNull] ICollectionItemFactoryProvider collectionItemFactoryProvider, [NotNull][ImportMany(typeof(IPropertyValueResolver))] IEnumerable <Lazy <IPropertyValueResolver> > propertyValueResolvers) { if (propertyValueFactoryProvider == null) { throw new ArgumentNullException(nameof(propertyValueFactoryProvider)); } if (collectionItemFactoryProvider == null) { throw new ArgumentNullException(nameof(collectionItemFactoryProvider)); } if (propertyValueResolvers == null) { throw new ArgumentNullException(nameof(propertyValueResolvers)); } this.propertyValueFactoryProvider = propertyValueFactoryProvider; this.collectionItemFactoryProvider = collectionItemFactoryProvider; this.propertyValueResolvers = propertyValueResolvers; this.proxyGenerator = new ProxyGenerator(); this.proxyGenerationOptions = new ProxyGenerationOptions { Selector = new PropertyInterceptorSelector() }; }
/// <summary> /// Initializes a new instance of the <see cref="PropertyChangeTrackingInterceptor"/> class. /// </summary> /// <param name="instanceDescriptor">The associated <see cref="Model.InstanceDescriptor"/>.</param> /// <param name="propertyValueFactoryProvider">The <see cref="IPropertyValueFactoryProvider"/>.</param> /// <exception cref="ArgumentNullException">The value of '<paramref name="propertyValueFactoryProvider"/>' and '<paramref name="instanceDescriptor"/>' cannot be null.</exception> protected PropertyChangeTrackingInterceptor([NotNull] InstanceDescriptor instanceDescriptor, [NotNull] IPropertyValueFactoryProvider propertyValueFactoryProvider) { if (instanceDescriptor == null) { throw new ArgumentNullException(nameof(instanceDescriptor)); } if (propertyValueFactoryProvider == null) { throw new ArgumentNullException(nameof(propertyValueFactoryProvider)); } this.InstanceDescriptor = instanceDescriptor; this.propertyValueFactoryProvider = propertyValueFactoryProvider; }
/// <summary> /// Initializes a new instance of the <see cref="PrimitivePropertyChangeTrackingInterceptor"/> class. /// </summary> /// <param name="instanceDescriptor">The associated <see cref="InstanceDescriptor"/>.</param> /// <param name="instanceRelationStore">The <see cref="IInstanceRelationStore"/>.</param> /// <param name="propertyValueFactoryProvider">The <see cref="IPropertyValueFactoryProvider"/>.</param> /// <exception cref="ArgumentNullException">The value of '<paramref name="instanceRelationStore"/>', '<paramref name="propertyValueFactoryProvider"/>' and '<paramref name="instanceDescriptor"/>' cannot be null.</exception> public ComplexPropertyChangeTrackingInterceptor([NotNull] InstanceDescriptor instanceDescriptor, [NotNull] IPropertyValueFactoryProvider propertyValueFactoryProvider, [NotNull] IInstanceRelationStore instanceRelationStore) : base(instanceDescriptor, propertyValueFactoryProvider) { if (instanceRelationStore == null) { throw new ArgumentNullException(nameof(instanceRelationStore)); } this.instanceRelationStore = instanceRelationStore; }