У меня есть конечная точка WCF по адресу http://localhost:8090/api/Test. Реализация выглядит немного как это:Конечная точка WCF не правильно сериализует XML
[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 == нуль :(
POST http://localhost:8090/api/Test
Content-Type: text/xml
<Test> <TestValue>Test</TestValue> <BaseValue>Base</BaseValue></Test>
Любые идеи о том, что я делаю неправильно здесь?
Я попытался добавить пространство имен в TestBase перед отправкой это с тем же результатом. Я понятия не имел, что порядок XML повлиял на это. Ты сделал мой день! Благодарю. – Melon