Example #1
0
        private DomainProperty GetValueProperty(RuntimeType objectType, ValueEntry entry)
        {
            var propertyName = entry.Name.FirstToUpper();
            var propertyType = GetValueType(entry);
            var propertyInfo = objectType.AddProperty(propertyName, propertyType);

            propertyInfo.AddAttribute(new PropertyRepositoryAttribute());
            object defaultValue = DataUtil.GetDefaultValue(propertyType);

            //字符串类型处理
            if (entry.TypeName == "string" || entry.TypeName == "ascii")
            {
                if (entry.Descriptions.Count > 0)
                {
                    if (int.TryParse(entry.Descriptions[0], out int max))
                    {
                        propertyInfo.AddAttribute(new StringLengthAttribute(0, max));
                    }

                    if (entry.TypeName == "ascii")
                    {
                        propertyInfo.AddAttribute(new ASCIIStringAttribute());
                    }
                }
                defaultValue = string.Empty;
            }
            return(DomainProperty.Register(propertyName, propertyType, objectType, (o, p) => { return defaultValue; }, PropertyChangedMode.Compare, propertyType));
        }
Example #2
0
        private DomainProperty GetObjectProperty(RuntimeType objectType, ObjectEntry entry)
        {
            string propertyName = entry.Name.FirstToUpper();
            var    define       = GetObjectDefine(objectType, entry);
            Type   propertyType = define.MetadataType;

            var propertyInfo = objectType.AddProperty(propertyName, propertyType);

            propertyInfo.AddAttribute(new PropertyRepositoryAttribute());

            return(DomainProperty.Register(propertyName, propertyType, objectType, (o, p) => { return define.EmptyInstance; }, PropertyChangedMode.Definite, propertyType));
        }
Example #3
0
        private DomainProperty GetValueProperty(RuntimeType objectType, ValueEntry entry)
        {
            var propertyName = entry.Name.FirstToUpper();
            var propertyType = GetValueType(entry);
            var propertyInfo = objectType.AddProperty(propertyName, propertyType);

            propertyInfo.AddAttribute(new PropertyRepositoryAttribute());
            object defaultValue = entry.IsString ? string.Empty : DataUtil.GetDefaultValue(propertyType);

            AttachAttributes(propertyInfo, entry);
            return(DomainProperty.Register(propertyName, propertyType, objectType, (o, p) => { return defaultValue; }, PropertyChangedMode.Compare, propertyType));
        }
Example #4
0
        private DomainProperty GetListProperty(RuntimeType objectType, ListEntry entry)
        {
            var itemEntry   = entry.ItemEntry;
            var elementType = GetType(objectType, itemEntry);

            string propertyName = entry.Name.FirstToUpper();

            Type propertyType = GetListType(elementType);

            var propertyInfo = objectType.AddProperty(propertyName, propertyType);

            propertyInfo.AddAttribute(new PropertyRepositoryAttribute());

            return(DomainProperty.Register(propertyName, propertyType, objectType, (o, p) => { return propertyType.CreateInstance(); }, PropertyChangedMode.Definite, elementType));
        }