如何将json反序列化为PropertyType

本文关键字:PropertyType 反序列化 json | 更新日期: 2023-09-27 17:51:06

我试图通过反序列化json字符串来创建一个属性的新实例。当我显式地声明T的类型时,对JsonConvert.DeserializeObject<T>(string)的调用工作:

var foo = JsonConvert.DeserializeObject<Resource>(propertyValue.ToString());

但我想通过它PropertyInfo.PropertyType:

var foo = JsonConvert.DeserializeObject<prop.PropertyType>(propertyValue.ToString());

我得到"类型或命名空间'prop'找不到"。这对我来说没有意义,我认为PropertyTypeType

如何将json反序列化为PropertyType

接受类型参数的重载

var foo = JsonConvert.DeserializeObject(
            propertyValue.ToString(), 
            prop.PropertyType);
在本例中

foo的类型为object。这解决了您的问题,但您仍然留下了对不属于prop.PropertyType的类型的引用。