我使用 VS 2012 创建了一个 Web API。我有一个带有自定义对象参数的方法,我通过 Fiddler 将 JSON 传递给它进行测试:
[HttpPost, HttpPut] 公共 HttpResponseMessage UpsertProject(Projects p) { ... }
我的 Projects 对象有大约十几个标记为 JsonIgnore 的属性。我的假设是,当我的对象被序列化为 Json 时,这些属性将被忽略......这是真的。但是,当我调试我的方法时,我注意到所有标有 JsonIgnore 的对象属性都设置为 null,即使我从 Fiddler 传入的 Json 正在设置它们。我还尝试将数据作为 Json 获取并将其反序列化为对象的新实例,但这也不会设置标记为 JsonIngore 的属性。我知道 JsonIgnore 可以用于序列化,但认为它不会阻止在反序列化时设置属性。令人沮丧的是,我知道 ScriptIgnore 的行为并非如此,但我想使用 JSON.net 来处理我的序列化/反序列化。我' 我还创建了一个 Windows 应用程序并测试了相同的序列化/反序列化功能,并且它可以在其中工作。所以我想知道这是否是 JsonIgnore 属性的 Web API 限制?