Morfeey
@Morfeey

Как присвоить значения свойств текущего класса в цикле?

Имеется класс с настройками, который сохраняется в файл в виде Json и оттуда же считывается при запуске программы.
Каким образом можно заполнить свойства этого класса из объекта файла ?

Собсна сам класс:
public  class Settings
    {

        public string WinUser { get; set; }
        public string WinPassword { get; set; }
        public object[] BackUps { get; set; }

        public Settings()
        {
            string CurrentDirectory = Directory.GetCurrentDirectory(),
                   SettingsCFG = CurrentDirectory + "/settings.cfg";
            PropertyInfo[] SettingsInfo;
            Type myType = typeof(Settings);
            SettingsInfo = myType.GetProperties();
            Dictionary<string, string> Properties = new Dictionary<string, string>();
            string Prop, Val, Json;

            if (File.Exists(SettingsCFG))
            {
                
                object Setts = JsonConvert.DeserializeObject(File.ReadAllText(SettingsCFG));

                var PropertiesCFG = Setts.GetType().GetProperties();

                for (var i=0;)
                {

                }


            }
            else
            {
                
                for (int i = 0; i < SettingsInfo.Length; i++)
                {
                    Prop = SettingsInfo[i].Name;
                    Val = null;
                    Properties.Add(Prop, Val);
                }
                Json = JsonConvert.SerializeObject(Properties);
                File.WriteAllText(SettingsCFG, Json);
            }
             
        }
        
    }
  • Вопрос задан
  • 365 просмотров
Пригласить эксперта
Ответы на вопрос 1
EreminD
@EreminD
Кое-что умею
Вам нужно создать класс, описывающий объект с настройками
и вот как в примере JSON.net указано, десерриализовать:
//тут ваш json, вычитанный из файла
string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";
//вместо Movie, ваш класс
Movie m = JsonConvert.DeserializeObject<Movie>(json);

string name = m.Name;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы