Example #1
0
 internal ValueDescriptor(string valueName, Type valueType, Type memberType, MemberInfo memberInfo, VDFlags flags)
 {
   this.ValueName = valueName;
   this.ValueType = valueType;
   this.MemberType = memberType;
   this.memberInfo = memberInfo;
   this.flags = flags;
 }
Example #2
0
        internal ValueDescriptor(string valueName, Type valueType, Type memberType, MemberInfo memberInfo, VDFlags flags)
        {
            // Take new naming convention into account.
            if (valueName.StartsWith("_"))
                valueName = valueName.Substring(1);

            ValueName = valueName;
            ValueType = valueType;
            MemberType = memberType;
            MemberInfo = memberInfo;
            _flags = flags;
        }
Example #3
0
        internal ValueDescriptor(string valueName, Type valueType, Type memberType, MemberInfo memberInfo, VDFlags flags)
        {
            // Take new naming convention into account.
            if (valueName.StartsWith("_"))
            {
                valueName = valueName.Substring(1);
            }

            ValueName  = valueName;
            ValueType  = valueType;
            MemberType = memberType;
            MemberInfo = memberInfo;
            _flags     = flags;
        }
        internal static ValueDescriptor CreateValueDescriptor(MemberInfo memberInfo, DVAttribute attr)
        {
            VDFlags flags = VDFlags.None;

            if (attr.RefOnly)
            {
                flags |= VDFlags.RefOnly;
            }

            string name = memberInfo.Name;

            Type type;

            if (memberInfo is FieldInfo)
            {
                type = ((FieldInfo)memberInfo).FieldType;
            }
            else
            {
                type = ((PropertyInfo)memberInfo).PropertyType;
            }

            if (type == typeof(NBool))
            {
                return(new NullableDescriptor(name, typeof(Boolean), type, memberInfo, flags));
            }

            if (type == typeof(NInt))
            {
                return(new NullableDescriptor(name, typeof(Int32), type, memberInfo, flags));
            }

            if (type == typeof(NDouble))
            {
                return(new NullableDescriptor(name, typeof(Double), type, memberInfo, flags));
            }

            if (type == typeof(NString))
            {
                return(new NullableDescriptor(name, typeof(String), type, memberInfo, flags));
            }

            if (type == typeof(String))
            {
                return(new ValueTypeDescriptor(name, typeof(String), type, memberInfo, flags));
            }

            if (type == typeof(NEnum))
            {
                Type valueType = attr.Type;
                Debug.Assert(valueType.GetTypeInfo().IsSubclassOf(typeof(Enum)), "NEnum must have 'Type' attribute with the underlying type");
                return(new NullableDescriptor(name, valueType, type, memberInfo, flags));
            }

            if (type.GetTypeInfo().IsSubclassOf(typeof(ValueType)))
            {
                return(new ValueTypeDescriptor(name, type, type, memberInfo, flags));
            }

            if (typeof(DocumentObjectCollection).IsAssignableFrom(type))
            {
                return(new DocumentObjectCollectionDescriptor(name, type, type, memberInfo, flags));
            }

            if (typeof(DocumentObject).IsAssignableFrom(type))
            {
                return(new DocumentObjectDescriptor(name, type, type, memberInfo, flags));
            }

            Debug.Assert(false, type.FullName);
            return(null);
        }
 internal DocumentObjectCollectionDescriptor(string valueName, Type valueType, Type fieldType, MemberInfo memberInfo, VDFlags flags)
     :
     base(valueName, valueType, fieldType, memberInfo, flags)
 {
 }
 internal ValueDescriptor(string valueName, Type valueType, Type memberType, MemberInfo memberInfo, VDFlags flags)
 {
     this.ValueName  = valueName;
     this.ValueType  = valueType;
     this.MemberType = memberType;
     this.memberInfo = memberInfo;
     this.flags      = flags;
 }
 internal ValueTypeDescriptor(string valueName, Type valueType, Type fieldType, MemberInfo memberInfo, VDFlags flags)
     :
     base(valueName, valueType, fieldType, memberInfo, flags)
 {
 }
Example #8
0
 internal DocumentObjectCollectionDescriptor(string valueName, Type valueType, Type fieldType, MemberInfo memberInfo, VDFlags flags)
   :
   base(valueName, valueType, fieldType, memberInfo, flags)
 {
 }
Example #9
0
 internal ValueTypeDescriptor(string valueName, Type valueType, Type fieldType, MemberInfo memberInfo, VDFlags flags)
   :
   base(valueName, valueType, fieldType, memberInfo, flags)
 {
 }
Example #10
0
 public DocumentObjectDescriptor(string valueName, Type valueType, Type fieldType, MemberInfo memberInfo, VDFlags flags)
     : base(valueName, valueType, fieldType, memberInfo, flags)
 {
 }
Example #11
0
 public NullableDescriptor(string valueName, Type valueType, Type fieldType, MemberInfo memberInfo, VDFlags flags)
     : base(valueName, valueType, fieldType, memberInfo, flags)
 {
 }
Example #12
0
        internal static ValueDescriptor CreateValueDescriptor(MemberInfo memberInfo, DVAttribute attr)
        {
            VDFlags flags = VDFlags.None;
              if (attr.RefOnly)
            flags |= VDFlags.RefOnly;

              string name = memberInfo.Name;

              Type type;
              if (memberInfo is FieldInfo)
            type = ((FieldInfo)memberInfo).FieldType;
              else
            type = ((PropertyInfo)memberInfo).PropertyType;

              if (type == typeof(NBool))
            return new NullableDescriptor(name, typeof(Boolean), type, memberInfo, flags);

              if (type == typeof(NInt))
            return new NullableDescriptor(name, typeof(Int32), type, memberInfo, flags);

              if (type == typeof(NDouble))
            return new NullableDescriptor(name, typeof(Double), type, memberInfo, flags);

              if (type == typeof(NString))
            return new NullableDescriptor(name, typeof(String), type, memberInfo, flags);

              if (type == typeof(String))
            return new ValueTypeDescriptor(name, typeof(String), type, memberInfo, flags);

              if (type == typeof(NEnum))
              {
            Type valueType = attr.Type;
            Debug.Assert(valueType.IsSubclassOf(typeof(Enum)), "NEnum must have 'Type' attribute with the underlying type");
            return new NullableDescriptor(name, valueType, type, memberInfo, flags);
              }

              if (type.IsSubclassOf(typeof(ValueType)))
            return new ValueTypeDescriptor(name, type, type, memberInfo, flags);

              if (typeof(DocumentObjectCollection).IsAssignableFrom(type))
            return new DocumentObjectCollectionDescriptor(name, type, type, memberInfo, flags);

              if (typeof(DocumentObject).IsAssignableFrom(type))
            return new DocumentObjectDescriptor(name, type, type, memberInfo, flags);

              Debug.Assert(false, type.FullName);
              return null;
        }