/// <summary>
        /// ctor
        /// </summary>
        /// <param name="decorated"></param>
        /// <param name="objectCache"></param>
        public CachedPropertyAccessorFactoryDecorator(IPropertyAccessorFactory decorated, IObjectCache objectCache)
        {
            this.decorated   = decorated;
            this.objectCache = objectCache;

            RegisterDefaultKeyProvider(objectCache);
        }
Пример #2
0
        public PropertyAccessorTests()
        {
            var referenceCheckerMock  = Substitute.For <IObjectReferenceChecker>();
            var collectionCheckerMock = Substitute.For <IObjectCollectionChecker>();

            attributeProviderMock = Substitute.For <IMemberAttributeProvider>();

            sutFactory = new LambdaPropertyAccessorFactory(referenceCheckerMock, collectionCheckerMock, attributeProviderMock);
        }
Пример #3
0
        public PropertyAccessorFactoryTests()
        {
            referenceCheckerMock = Substitute.For <IObjectReferenceChecker>();

            var collectionCheckerMock = Substitute.For <IObjectCollectionChecker>();

            var attributeProviderStub = Substitute.For <IMemberAttributeProvider>();

            // To test the logic of a factory, the providers it uses are not important, so they are replaced with stubs.
            sut = new LambdaPropertyAccessorFactory(referenceCheckerMock, collectionCheckerMock, attributeProviderStub);
        }
Пример #4
0
        public PropertyAccessorExtractor(
            IPropertyAccessorFactory propertyAccessorFactory,
            ILocationFactory locationFactory,
            IUnderlyingObjectFactory underlyingObjectFactory)
        {
            if (propertyAccessorFactory == null)
            {
                throw new ArgumentNullException(nameof(propertyAccessorFactory));
            }
            if (locationFactory == null)
            {
                throw new ArgumentNullException(nameof(locationFactory));
            }
            if (underlyingObjectFactory == null)
            {
                throw new ArgumentNullException(nameof(underlyingObjectFactory));
            }

            this.propertyAccessorFactory = propertyAccessorFactory;
            this.locationFactory         = locationFactory;
            this.underlyingObjectFactory = underlyingObjectFactory;
        }
        private static IPropertyAccessorFactory CreateCachedPropertyAccessorFactory(IPropertyAccessorFactory accessorFactory)
        {
            IObjectCache accessorCache = new ConcurrentObjectCache();

            return(new CachedPropertyAccessorFactoryDecorator(accessorFactory, accessorCache));
        }
 /// <summary>
 /// ctor
 /// </summary>
 /// <param name="typePropertyProvider"></param>
 /// <param name="propertyAccessorFactory"></param>
 public DefaultPropertyProvider(ITypePropertyProvider typePropertyProvider, IPropertyAccessorFactory propertyAccessorFactory)
 {
     this.typePropertyProvider    = typePropertyProvider;
     this.propertyAccessorFactory = propertyAccessorFactory;
 }