2013-11-24 3 views
1

У меня есть Load функцию в моей C# модели, а в том, что я хочу, чтобы иметь возможность принять строку JSON и десериализации его в текущую модель, например:Deserialize JSON строки в текущий класс

this = JsonConvert.DeserializeObject<Settings>(leJson); 

Но, очевидно, я не могу этого сделать, но я изо всех сил пытаюсь понять, как это сделать.

+0

может быть вероятность того, что ваша модель и Json отличается показать ваши данные класса и образца JSON –

+0

Ну, ошибка в компиляторе, а не во время выполнения. Ошибка, если я пытаюсь установить значение 'this', это' Нельзя назначить '', потому что он доступен только для чтения'. –

+0

Почему вы используете 'this', присваиваете его ссылочной переменной класса –

ответ

2

Это невозможно. Вы не можете записать переменную this из экземпляра. Вы должны сделать это из внешнего класса. Или ваш метод возвращает экземпляр класса:

public static Settings GetSettings() 
{ 
    return JsonConvert.DeserializeObject<Settings>(leJson); 
} 
+0

Итак, нет способа загрузить и применить настройки внутри класса? –

+0

Нет, не по всему миру. Вам нужно будет сделать это свойство по свойству, если вы хотите сделать это изнутри класса. Самым простым было бы просто получить новый экземпляр, если у вас много свойств. –

+0

Ну ладно, это раздражает, но хорошо. –

Смежные вопросы