TypeDef CreateTypeDef(QualifiedClassName qualifiedClassName, Type type)
        {
            var typeDef = IsCommand(type)
                ? new TypeDef(qualifiedClassName, GetTypeFor(typeof(Command)), TypeType.Command, type)
                : new TypeDef(qualifiedClassName, TypeType.Other);

            _types[type] = typeDef;

            foreach (var property in GetAllProperties(type))
            {
                var propertyDef =
                    new PropertyDef(GetOrCreateTypeDef(new QualifiedClassName(property.PropertyType), property.PropertyType),
                        property.Name);

                if (typeDef.TypeType == TypeType.Command && propertyDef.Name == "Meta") continue;

                typeDef.AddProperty(propertyDef);
            }

            return typeDef;
        }
示例#2
0
 public void AddProperty(PropertyDef propertyDef)
 {
     _properties.Add(propertyDef);
 }
示例#3
0
 public void AddProperty(PropertyDef propertyDef)
 {
     _properties.Add(propertyDef);
 }