Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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()
            };
        }
Ejemplo n.º 3
0
        /// <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;
        }
Ejemplo n.º 4
0
        /// <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;
        }