/// <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); }
public PropertyAccessorTests() { var referenceCheckerMock = Substitute.For <IObjectReferenceChecker>(); var collectionCheckerMock = Substitute.For <IObjectCollectionChecker>(); attributeProviderMock = Substitute.For <IMemberAttributeProvider>(); sutFactory = new LambdaPropertyAccessorFactory(referenceCheckerMock, collectionCheckerMock, attributeProviderMock); }
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); }
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; }