У нас есть партнерская компания, которая отправляет нам XML через функцию webRequest (C#).Как сериализовать коллекцию в WCF из WebRequest
Структура XML исправлена, я не могу изменить способ отображения XML.
Ниже приведен пример того, что происходит и какой код я делаю. XML - пример того, как выглядит XML в Fiddler.
<Sales>
<Customer>
<Name>John</Name>
</Customer>
<Goods>
<Good>
<id>5445</id>
</Good>
<Good>
<id>6767</id>
</Good>
</Goods>
</Sales>
Моя функция WCF является
public Sales(clsCustomer Customer, clsGoods Good);
Мой интерфейс
[OperationContract]
[WebInvoke(UriTemplate = "SendRequest", BodyStyle = WebMessageBodyStyle.Wrapped, Method = "POST", ResponseFormat = WebMessageFormat.Xml)]
public Sales(clsCustomer Customer, clsGoods Goods)
Мои классы
[DataContract(NameSpace="http://example.com/Int")]
public class Customer {
[DataMember(Name="Name",Order=1)]
public string Name { get; set; }
}
[DataContract(NameSpace="http://example.com/Int")]
public class clsGoods {
public List<clsGood> Good { get; set; }
}
[DataContract(NameSpace="http://example.com/Int")]
public class clsGood {
public string id {get; set;}
}
Когда я использую WebRequest
размещать мою службу, поле клиента заполнить, ноКоллекциявсегда пустая.
Я действительно пытался это, но это не сработало. Когда у меня это как единственный узел, .i.e. [DataMember] public clsGood Good {get; задавать; } Я могу получить элемент clsGood, но он не может обрабатывать несколько товаров. – MiscellaneousUser
Что-то, что я обнаружил, хотя XML такой же, как и в Fiddler, когда он приходит в Webservice и обрабатывается, пространства имен появляются там, где они раньше не были. <Хороший xlmns = "example.com/Int">; Даже когда я удаляю пространства имен, они все еще появляются. – MiscellaneousUser