コード例 #1
0
 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);
 }
コード例 #2
0
 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>();
 }
コード例 #3
0
        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);
        }
コード例 #4
0
 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));
 }
コード例 #5
0
        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));
        }