C# 如何解析JToken或JObject';将值转换为动态确定的类型

C# 如何解析JToken或JObject';将值转换为动态确定的类型,c#,.net,json.net,C#,.net,Json.net,我希望有人能解释一下,动态地确定对象的类型,然后在泛型中使用类型,这是如何/为什么不起作用的 这将起作用,因为我将DateTime显式硬编码为以下类型: string serializedObject = JsonConvert.SerializeObject(exampleObject); Type dataType = exampleObject.GetType(); JObject jObject = JObject.Parse(serializedObject); jObject.Val

我希望有人能解释一下,动态地确定对象的类型,然后在泛型中使用类型,这是如何/为什么不起作用的

这将起作用,因为我将DateTime显式硬编码为以下类型:

string serializedObject = JsonConvert.SerializeObject(exampleObject);
Type dataType = exampleObject.GetType();
JObject jObject = JObject.Parse(serializedObject);
jObject.Value<DateTime>("propertyName");
string serializedObject=JsonConvert.SerializeObject(exampleObject);
类型dataType=exampleObject.GetType();
JObject-JObject=JObject.Parse(serializedObject);
jObject.Value(“propertyName”);
然而,这两种方法似乎都不起作用:

jObject.Value<typeof(dateType)>("propertyName");
jObject.Value<dateType>("propertyName");
jObject.Value(“propertyName”);
jObject.Value(“propertyName”);
如何在此处正确指定属性的类型:

jObject.Value<{WHAT SHOULD I PUT HERE}>("propertyName");
jObject.Value(“propertyName”);

它不起作用,因为您正在运行时确定
数据类型
,但是,
需要在编译时知道类型。首先,
Value
可能对
T
必须是什么有限制,如果它不知道
dataType
将是什么,它就不能在编译时对
dataType
执行这些检查

以下是一些答案,它们解决了您试图完成的任务,尽管涉及集合,但通常适用于运行时确定的泛型参数:

请注意,您的“{WHAT SHOULD PUT HERE}”是他们所调用的泛型参数。

的可能重复项