2015-02-05 1 views
0

У нас есть партнерская компания, которая отправляет нам 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 размещать мою службу, поле клиента заполнить, ноКоллекциявсегда пустая.

ответ

0

вам нужно украсить (публичный список Хорошо {получить, установить;}) в качестве элемента данных

так:

[DataMember] 
public List<clsGood> Good { get; set; } 
+0

Я действительно пытался это, но это не сработало. Когда у меня это как единственный узел, .i.e. [DataMember] public clsGood Good {get; задавать; } Я могу получить элемент clsGood, но он не может обрабатывать несколько товаров. – MiscellaneousUser

+0

Что-то, что я обнаружил, хотя XML такой же, как и в Fiddler, когда он приходит в Webservice и обрабатывается, пространства имен появляются там, где они раньше не были. <Хороший xlmns = "example.com/Int">; Даже когда я удаляю пространства имен, они все еще появляются. – MiscellaneousUser