Пример #1
0
 public DynamicEnumFieldMapping(Type type, string fieldName, DynamicCustomMapping mapping)
     : base(type, fieldName, mapping, true)
 {
 }
Пример #2
0
 protected DynamicFieldMapping(Type type, string fieldName, DynamicCustomMapping mapping, bool isNullable)
     : base(type, fieldName, fieldName, mapping, isNullable, null)
 {
 }
Пример #3
0
        public static DynamicFieldMapping CreateDynmaicFieldMapping(PropertyInfo property, DynamicCustomMapping mapping)
        {
            DynamicFieldMapping fieldMapping;
            Type     type      = property.PropertyType;
            TypeInfo typeInfo  = type.GetTypeInfo();
            string   fieldName = property.Name;

            if (typeInfo.IsGenericType)
            {
                Type frameType = type.GetGenericTypeDefinition();
                if (frameType.FullName == "System.Nullable`1")
                {
                    Type[] arguments = typeInfo.GetGenericArguments();
                    type     = arguments[0];
                    typeInfo = type.GetTypeInfo();
                }
            }

            if (type.IsArray)
            {
                throw new LightDataException(string.Format(SR.DataMappingUnsupportFieldType, property.DeclaringType, property.Name, type));
            }
            else if (type.IsGenericParameter || typeInfo.IsGenericTypeDefinition)
            {
                throw new LightDataException(string.Format(SR.DataMappingUnsupportFieldType, property.DeclaringType, property.Name, type));
            }
            else if (typeInfo.IsEnum)
            {
                DynamicEnumFieldMapping enumFieldMapping = new DynamicEnumFieldMapping(type, fieldName, mapping);
                fieldMapping = enumFieldMapping;
            }
            else
            {
                TypeCode code = Type.GetTypeCode(type);
                if (code == TypeCode.Empty)
                {
                    throw new LightDataException(string.Format(SR.DataMappingUnsupportFieldType, property.DeclaringType, property.Name, type));
                }
                else if (code == TypeCode.Object)
                {
                    DynamicObjectFieldMapping objectFieldMapping = new DynamicObjectFieldMapping(type, fieldName, mapping);
                    fieldMapping = objectFieldMapping;
                }
                else
                {
                    DynamicPrimitiveFieldMapping primitiveFieldMapping = new DynamicPrimitiveFieldMapping(type, fieldName, mapping);
                    fieldMapping = primitiveFieldMapping;
                }
            }
            return(fieldMapping);
        }
Пример #4
0
        private static DynamicCustomMapping CreateMapping(Type type)
        {
            DynamicCustomMapping mapping = new DynamicCustomMapping(type);

            return(mapping);
        }