我有一个 Web API 服务(令我惊讶)需要能够接受 XML 和 JSON。首先,这里是模型:
[DataContract]
public class SerializedCustomerEvent
{
[DataMember]
public string TypeID { get; set; }
[DataMember]
public ContextPair[] Context { get; set; }
}
public class ContextPair
{
public string Key { get; set; }
public string Value { get; set; }
}
这是 API 控制器方法:
public void Post(SerializedCustomerEvent value)
{
_queueBroker.Queue(value);
}
现在这是我忽略某些东西的部分。来自 Fiddler 的 JSON 帖子可以正常工作:
Content-Type: application/json; charset=utf-8
{
"TypeID":"ABC",
"Context":
[
{"Key":"Field1","Value":"123"},
{"Key":"Field2","Value":"Jeff"}
]
}
但是,XML 版本不起作用。Context 属性始终为空。
Content-Type: application/xml; charset=utf-8
<?xml version="1.0"?>
<SerializedCustomerEvent xmlns="http://schemas.datacontract.org/2004/07/MyNamespace">
<TypeID>XMLWow</TypeID>
<Context>
<ContextPair>
<Key>Field1</Key>
<Value>123</Value>
</ContextPair>
<ContextPair>
<Key>Field2</Key>
<Value>Jeff</Value>
</ContextPair>
</Context>
</SerializedCustomerEvent>
我在这里想念什么?