public TypeModel ToModel()
        {
            TypeModel model = new TypeModel();

            model.TypeEnum         = EnumMapper.ConvertEnum <TypeTypesEnum, TypeTypesSerializationModelEnum>(TypeEnum);
            model.TypeName         = TypeName;
            model.NamespaceName    = NamespaceName;
            model.GenericArguments = GenericArguments?.Select(EmitTypeModel);

            model.Modifiers = new Tuple <AccessLevelEnum, SealedEnum, AbstractEnum>(
                EnumMapper.ConvertEnum <AccessLevelEnum, AccessLevelSerializationModelEnum>(Modifiers.Item1),
                EnumMapper.ConvertEnum <SealedEnum, SealedSerializationModelEnum>(Modifiers.Item2),
                EnumMapper.ConvertEnum <AbstractEnum, AbstractSerializationModelEnum>(Modifiers.Item3));

            model.Attributes            = Attributes?.Select(attributeMetadata => attributeMetadata.ToModel());
            model.FullTypeName          = FullTypeName;
            model.DeclaringType         = DeclaringType == null ? null : EmitTypeModel(DeclaringType);
            model.BaseType              = DeclaringType == null ? null : EmitTypeModel(BaseType);
            model.ImplementedInterfaces = ImplementedInterfaces?.Select(EmitTypeModel);
            model.Fields       = Fields?.Select(typeModel => typeModel.ToModel());
            model.Methods      = Methods?.Select(typeModel => typeModel.ToModel());
            model.Properties   = Properties?.Select(typeModel => typeModel.ToModel());
            model.Indexers     = Indexers?.Select(typeModel => typeModel.ToModel());
            model.Events       = Events?.Select(typeModel => typeModel.ToModel());
            model.Constructors = Constructors?.Select(typeModel => typeModel.ToModel());
            model.NestedTypes  = NestedTypes?.Select(EmitTypeModel);

            return(model);
        }
Esempio n. 2
0
 /// <summary>
 /// Create a deep clone of the member data object.
 /// </summary>
 public object Clone()
 {
     return(new MemberData()
     {
         Constructors = Constructors?.Select(c => (string[])c.Clone()).ToArray(),
         Events = (JsonDictionary <string, EventData>)Events?.Clone(),
         Fields = (JsonDictionary <string, FieldData>)Fields?.Clone(),
         Indexers = Indexers?.Select(i => (IndexerData)i.Clone()).ToArray(),
         Methods = (JsonDictionary <string, MethodData>)Methods?.Clone(),
         NestedTypes = (JsonDictionary <string, TypeData>)NestedTypes?.Clone(),
         Properties = (JsonDictionary <string, PropertyData>)Properties?.Clone(),
     });
 }