public string Save( ) { StringBuilder [] stringBuilders = new StringBuilder[Enum.GetValues(typeof(SettingCategory)). OfType <SettingCategory> ( ). Max(type => ( int )type)]; foreach (SettingCategory type in Enum.GetValues(typeof(SettingCategory))) { stringBuilders [( int )type] = new StringBuilder( ); } foreach (PropertyInfo property in typeof(Settings).GetProperties( )) { SettingItemAttribute attribute = ( SettingItemAttribute )property.GetCustomAttribute(typeof(SettingItemAttribute)); int index = ( int )attribute.SettingCategory; StringBuilder propertyBuilder = stringBuilders [index]; propertyBuilder.AppendLine(attribute.ToString( )); propertyBuilder.AppendLine($"{property . Name} = {property . GetValue ( this )}"); propertyBuilder.AppendLine( ); } StringBuilder builder = new StringBuilder( ); for (int i = 0; i < stringBuilders.Length; i++) { builder.AppendLine($"##{( SettingCategory ) i}"); builder.AppendLine( ); builder.AppendLine(stringBuilders [i].ToString( )); builder.AppendLine( ); } return(builder.ToString( )); }
public static Settings GenerateNew( ) { Settings setting = new Settings( ); foreach (PropertyInfo property in typeof(Settings).GetProperties( )) { SettingItemAttribute attribute = ( SettingItemAttribute )property.GetCustomAttribute(typeof(SettingItemAttribute)); property.SetValue(setting, attribute.DefultValue); } return(setting); }