2013-03-05 4 views
0

Я использую клиентские методы для мыльного веб-сервиса. На одном из методов имеет параметр как строки [] список, поэтому я создать ...Сериализация массива XML

string[] myList = { "12345678" }; 

и я отсылаю запрос через метод клиента, но я получаю сообщение об ошибке сказав SAXException Найдено символьные данные внутри элемент массива при десериализации. Я знаю, что клиентский метод отправляет это в конверт.

<List>12345678</List> 

Какой должна быть, как это ...

<List><string>12345678</string></List> 

Я попытался следующие, и до сих пор не получить результат, который мне нужно.

[XmlArrayItem("m")] 
public string[] list 
{ 
    get; set; 
} 

я сделал это, чтобы использовать выше класс,

string[] a = new string[] { "12345678" }; 
list = a; 

и результат тот же,

<List>12345678</List> 
+0

Можем ли мы увидеть код? что вы уже пробовали? Похож на http://stackoverflow.com/questions/2815421/why-am-i-getting-org-xml-sax-saxexception-for-this-block-of-xml –

+0

Ваш результат - результат. Вы не пытаетесь сериализовать список, который вы пытаетесь сериализовать несколько строк огромной разницы. Если вы хотите сериализовать коллекцию, это возможно, но требует дополнительного кода: http://stackoverflow.com/questions/126155/c-sharp-array-xml-serialization?rq=1 –

+0

Название редактируется, потому что вопрос не связан с C# , но и для XML-сериализации в целом. –

ответ

0

я должен был изменить WSDL в типе он имел MaxOccurs = «Unbounded» type = «xsd: string» Я изменил его на minOccurs = «0» maxOccurs = «1» type = «xsd: ArrayOfString» и регенерировал код клиента. И это сработало. Спасибо за предложения.

Смежные вопросы