【发布时间】:2015-03-10 22:10:37
【问题描述】:
我在http://localhost:8090/api/Test 有一个 WCF 端点。实现看起来有点像这样:
[OperationContract]
[WebInvoke(
Method = "POST",
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "Test")]
void TestEndpoint(Test test);
我在别处声明了一些数据对象
[DataContract]
public class TestBase
{
[DataMember(Name = "BaseValue")]
public string BaseValue { get; set; }
}
[DataContract(Namespace = "")]
public class Test : TestBase
{
[DataMember(Name = "TestValue")]
public string TestValue { get; set; }
}
我遇到的问题是,当我调用端点并通过请求正文传递对象数据时,数据仅在我使用 JSON 时正确序列化,而不是在我使用 XML 时。
以下将非常有用。 Test.TestValue == "TestValue" 和 Test.BaseValue == "BaseValue"。
POST http://localhost:8090/api/Test
Content-Type: text/json
{ "TestValue":"Test", "BaseValue": "BaseValue" }
当我执行以下 Test.TestValue == "TestValue" 和 Test.BaseValue == null :(
POST http://localhost:8090/api/Test
Content-Type: text/xml
<Test> <TestValue>Test</TestValue> <BaseValue>Base</BaseValue></Test>
关于我在这里做错了什么有什么想法吗?
【问题讨论】: