private PropertyModel[] GeneratePropertyModels(ITypeSymbol typeSymbol) { var classInformation = new ClassInformation(typeSymbol); List <IFieldSymbol> fields = classInformation.GetFields().ToList(); List <IPropertySymbol> properties = classInformation.GetProperties().ToList(); PropertyModel[] propertyModels = new PropertyModel[fields.Count + properties.Count]; for (int i = 0; i < fields.Count; i++) { propertyModels[i] = new PropertyModel() { Name = fields[i].Name, Type = TypeName(fields[i].Type), Visibility = GetAccessibilityName(fields[i].DeclaredAccessibility) }; } for (int i = 0; i < properties.Count; i++) { propertyModels[fields.Count + i] = new PropertyModel() { Name = properties[i].Name, Type = TypeName(properties[i].Type), Visibility = GetAccessibilityName(properties[i].DeclaredAccessibility) }; } return(propertyModels); }