【发布时间】:2015-05-21 15:23:02
【问题描述】:
我有一个小问题。 我应该通过 c# 中的库 json.net 反序列化一个 json。 我不明白你如何切换输入粗体列表,当然,所有使用反射,因为我正在做一个通用方法。
谁能给我点启示?或解决方案:)
public static void insertTable(String json, String table)
{
using (localDBService db = new localDBService())
{
dynamic item = Activator.CreateInstance(Type.GetType("eStartService." + table));
item = JsonConvert.DeserializeObject(json);
try
{
var set = db.Set(item.GetType());
set.Add(item);
db.SaveChanges();
log.Info("Scritto sul database dal metodo InsertTable");
}
catch (Exception ex)
{
log.Info("ERRORE DI SCRITTURA SUL DATABASE METODO : insertTable");
throw ex;
}
}
}
错误:实体类型 JArray 不是当前上下文模型的一部分。
谢谢
我的需要是能够读取 json ,在您的对象中动态反序列化,就像您现在看到的那样......以及我粘贴的那个错误。 有什么解决办法吗?
【问题讨论】:
-
我这里有两个问题,首先
Type type = serviceString.GetType();有什么问题,目前它总是返回字符串类型,你能不能从服务中得到你想要的类型?,第二个 json.net 已经支持反序列化匿名或动态对象,但我的问题是,当您不知道列表中包含什么内容时,您将如何使用列表,如果您可以通过使用示例来回答这两个问题,我相信我们可以提出解决方案。 -
我将指定动态返回 json.net 的列表.. 这意味着我说的对象类型是动态的!这么清楚?
-
我可以使用什么是可以理解的?
-
是动态解析类型还是在运行时创建类型?
-
为什么不能用dynamic,有什么特别的原因吗?
标签: c# json list dynamic reflection