我正在做一个项目,我在其中基于反射动态构建一组对象并将其序列化(使用 json.net)。
我想做的是反序列化它并重新创建对象树,但我不知道最终的类类型。
那么我怎样才能知道呢?
这是一个例子:
public class insideBleah
{
public int BProperty
{ get; set; }
}
public class bleah
{
public int AProperty
{ get; set; }
public insideBleah Inside
{ get; set; }
}
和
var bleah = new bleah();
bleah.AProperty = 1;
bleah.Inside = new insideBleah();
bleah.Inside.BProperty = 2;
var output = JsonConvert.SerializeObject(bleah, new JsonSerializerSettings()
{
TypeNameHandling = TypeNameHandling.Objects
});
这将产生输出字符串:
"{\"$type\":\"jsontest.bleah, jsontest\",\"AProperty\":1,\"Inside\":{\"$type\":\"jsontest.insideBleah, jsontest\",\"BProperty\":2}}"
所以我可以看到那里的课程。它是如此接近!但我似乎无法梳理出这些信息。
我怎样才能做到这一点?我不能这样做:
var newObject = (bleah)JsonConvert.DeserializeObject<bleah>(output);
因为我不知道这是一个'bleah'。
我该如何处理?
提前致谢