public ProxyCreator(ProxyHelper proxyHelper, Type type, INameTransfer nameTransfer, INamedCreator namedCreator, IPropertyVisitor propertyVisitor) : base(type, nameTransfer, namedCreator, propertyVisitor) { ProxyHelper = proxyHelper ?? throw new ArgumentNullException(nameof(proxyHelper)); BuildType(type); }
public ObjectNamedCreator(Type type, INameTransfer nameTransfer, INamedCreator namedCreator, IPropertyVisitor propertyVisitor) { PropertyVisitor = propertyVisitor ?? throw new ArgumentNullException(nameof(propertyVisitor)); NameTransfer = nameTransfer ?? throw new ArgumentNullException(nameof(nameTransfer)); NamedCreator = namedCreator ?? throw new ArgumentNullException(nameof(namedCreator)); Type = type ?? throw new ArgumentNullException(nameof(type)); propertyInfos = new Dictionary <PropertyInfo, IPropertyProxyInfo>(); IsForceStepIn = type.GetCustomAttribute <ConfigStepInAttribute>() != null; ConfigPath = Type.GetCustomAttribute <ConfigPathAttribute>(); }
public static ProxyCreator CreateComplexProxy(this ProxyHelper proxyHelper, Type type, INameTransfer nameTransfer, INamedCreator namedCreator, Visitors.IPropertyVisitor propertyVisitor) { if (proxyHelper is null) { throw new ArgumentNullException(nameof(proxyHelper)); } if (type is null) { throw new ArgumentNullException(nameof(type)); } if (nameTransfer is null) { throw new ArgumentNullException(nameof(nameTransfer)); } if (namedCreator is null) { throw new ArgumentNullException(nameof(namedCreator)); } if (propertyVisitor is null) { throw new ArgumentNullException(nameof(propertyVisitor)); } var creator = new ProxyCreator(proxyHelper, type, nameTransfer, namedCreator, propertyVisitor); creator.Analysis(); return(creator); }
public static ProxyCreator CreateComplexProxy <T>(this ProxyHelper proxyHelper, INameTransfer nameTransfer, INamedCreator namedCreator, Visitors.IPropertyVisitor propertyVisitor) where T : class { return(CreateComplexProxy(proxyHelper, typeof(T), nameTransfer, namedCreator, propertyVisitor)); }
public static ProxyCreator CreateComplexProxy(this ProxyHelper proxyHelper, Type type, INameTransfer nameTransfer, INamedCreator namedCreator) { if (proxyHelper is null) { throw new ArgumentNullException(nameof(proxyHelper)); } if (type is null) { throw new ArgumentNullException(nameof(type)); } if (nameTransfer is null) { throw new ArgumentNullException(nameof(nameTransfer)); } if (namedCreator is null) { throw new ArgumentNullException(nameof(namedCreator)); } return(CreateComplexProxy(proxyHelper, type, nameTransfer, namedCreator, CompilePropertyVisitor.Instance)); }