我创建了一个类似的列表:
var executingAssembly = Assembly.GetExecutingAssembly();
var referencedAssemblies = executingAssembly.GetReferencedAssemblies();
var assembly = referencedAssemblies.Single(x => x.Name.Equals("X.Y.Z"));
var messagesAssembly = Assembly.Load(assembly);
var types = messagesAssembly.GetTypes();
var selectedTypes = from t in types
where t.Namespace.Contains("X.Y.Z.K")
select t;
我需要将一些json数据转换为其中一种类型。我如何找出哪一个是正确的?
我尝试了以下内容:
var jsonData = File.ReadAllText(filePair.FullPath);
foreach(var type in selectedTypes)
{
var correctObject = JsonConvert.DeserializeObject(jsonData, type);
}
只是将其转换为列表中的第一个类型 我也试过模板方法
var jsonData = File.ReadAllText(filePair.FullPath);
foreach(var type in selectedTypes)
{
var correctObject = JsonConvert.DeserializeObject<type>(jsonData);
}
哪个&#34;无法解析符号&#39;键入&#39;。
是否可以将其转换为selectedTypes中的正确类型?
答案 0 :(得分:1)
我最终使用“ServiceStack的.NET最快的JSOn Serializer”。 它有一个方法ServiceStack.Text.JsonSerializer.DeserializeFromString(字符串值,类型类型),它完美地工作。