Ejemplo n.º 1
0
 private Member(
     MemberType memberType,
     Type type,
     MemberInfo memberInfo,
     IAccessFactory accessFactory = null,
     bool isReadable  = true,
     bool isWriteable = true,
     bool isRoot      = false)
     : this(
         memberType,
         memberInfo.Name,
         memberInfo.DeclaringType,
         type,
         accessFactory,
         isReadable,
         isWriteable,
         isRoot)
 {
     MemberInfo = memberInfo;
 }
Ejemplo n.º 2
0
        private Member(
            MemberType memberType,
            string name,
            Type declaringType,
            Type type,
            IAccessFactory accessFactory = null,
            bool isReadable  = true,
            bool isWriteable = true,
            bool isRoot      = false)
        {
            MemberType     = memberType;
            Name           = name;
            DeclaringType  = declaringType;
            Type           = type;
            _accessFactory = accessFactory;
            IsReadable     = isReadable;
            IsWriteable    = isWriteable;
            IsRoot         = isRoot;

            _hashCode = declaringType.GetHashCode();

            unchecked
            {
                _hashCode = (_hashCode * 397) ^ name.GetHashCode();
            }

            JoiningName  = (isRoot || this.IsEnumerableElement()) ? name : "." + name;
            IsEnumerable = type.IsEnumerable();

            if (IsEnumerable)
            {
                IsComplex   = IsDictionary = type.IsDictionary();
                ElementType = Type.GetEnumerableElementType();
                return;
            }

            IsSimple  = type.IsSimple();
            IsComplex = !IsSimple;
        }