【发布时间】:2016-04-06 11:49:31
【问题描述】:
我正在开发一个 ASP.NET Web API,它的资源允许 XML 和 JSON 格式。我的一项 Web API 服务的资源模型类型具有用户不会发送的属性。但我必须设置它以响应我发回的内容。
例如,有一个 POST 请求,用户希望将新项目保存到数据库。我的服务使用相同的资源模型和一个指示它已保存的附加属性进行响应。
我已将此附加属性添加到我的资源模型中。当我在 Fiddler 中通过 XML 请求对其进行测试时,它抱怨 HTTP400 说缺少新属性。使用 JSON 输入,它工作正常,可能是由于默认的 JSON 设置 JsonSerializerSettings.MissingMemberHandling。
对于 XML 反序列化,我们是否有与此等效的属性?
输入 XML 示例:
<MyResource>
<Property1>ABC</Property1>
<Property2>DEF</Property2>
</MyResource>
我打算发送的示例输出 XML:
<MyResource>
<Property1>ABC</Property1>
<Property2>DEF</Property2>
<Id>123</Id>
</MyResource>
错误看起来像:
The property Id was missing
我的资源模型如下:
public string Property1 { get; set; }
public string Property2 { get; set; }
public int Id { get; set; }
【问题讨论】:
标签: c# asp.net-web-api xml-deserialization json-deserialization