我有这样一个类:
public class MyClass
{
public int Counter { get; set; }
public string UnderlyingItemString { get; set; }
public object UnderlyingItem { get; set; }
}
属性UnderlyingItem
可以是不同的类型。
如何将其反序列化回原始类型?我确实将UnderlyingItem
的对象名存储在UnderlyingItemString
中
我执行下面的代码来反序列化它,这将UnderlyingItem
作为JObject
,但我需要它是我创建的自定义类之一。
JsonConvert.DeserializeObject<MyClass>(myJSON);
1条答案
按热度按时间ulydmbyx1#
这里有一个可能的方案,当tested具有gunr2171提到的四种类型时,似乎可以工作,它添加了一个
UnderlyingTypeName
属性来序列化完整的类型名称,并满足MyClass
不能是泛型的要求。json序列化程序将忽略
UnderlyingItem
属性本身。此属性的getter将查询加载的程序集,以查找包含目标类型的程序集。如果找到,json反序列化程序将使用特定类型。否则,将调用默认的Json.net反序列化程序。测试台
string[]
List<string>
double
decimal