Например, существует такой объект, как следующий:
public class Container
{
public object Data { get; set; }
}
И он использовал этот способ:
Container container = new Container
{
Data = new Dictionary<string, object> { { "Text", "Hello world" } }
};
Если я десериализую строку JSON, полученную после сериализации вышеуказанного экземпляра, свойство Data
, даже если я предоставляю ExpandoObjectConverter
, он не десериализуется как ExpandoObject
:
Container container = JsonConvert.Deserialize<Container>(jsonText, new ExpandoObjectConverter());
Как я могу десериализовать свойство класса, назначенное анонимным объектом или, по крайней мере, не конкретным типом, как ExpandoObject
?
EDIT:
Кто-то ответил, что я могу просто использовать динамический объект. Это не сработает для меня. Я знаю, что я мог бы пойти этим путем, но это не так, потому что мне нужен ExpandoObject. Спасибо.
ИЗМЕНИТЬ 2:
Некоторые другие пользователи ответили, что я могу десериализовать строку JSON в ExpandoObject
. Это не цель этого вопроса. Мне нужно десериализовать конкретный тип, обладающий динамическим свойством. В строке JSON это свойство может быть ассоциативным массивом.