我目前正在解决一个必须多次解决的问题。但我找不到我想要实施的解决方案。
有一个页面,用户可以在其中配置应用程序。此配置具有不同的数据类型。它们中的大多数只是原生的(string,bool,int,...),但有些具有复杂类型作为值。所以有一个类代表配置,因为它们作为JSON发送到浏览器:
public class ConfigurationModel
{
public string Key { get; set; }
public object Value { get; set; }
}
在浏览器中,此值已修改并可以保存。因此,相同的对象将发送回服务器。 出于任何原因,具有复杂类型的配置的值未正确反序列化,而是以JObject形式给出。
是否有一种常见的方法来处理反序列化而不创建json.net的自定义扩展? 如果没有,有没有办法在不必使用“字符串”访问属性的情况下执行此操作?
编辑: 谢谢你的重复提示,但它不是同一个问题。我希望WebAPI能够正确转换对象,而无需手动转换JObject!
编辑#2: 所有建议的主题都以某种方式使用JObject并将它们手动转换为正确的类型。因此,必须有一部分代码必须知道正确的类型。例如,使用
JObject.ToObject<T>();
我想要实现的是在列表中已经存在正确的类型,而无需进行此转换。