WCF DataContract сериализация с коллекциями - PullRequest
0 голосов
/ 09 марта 2010

У меня есть простой класс DataContract, который содержит массив другого класса DataContract. Когда он сериализуется, результирующий XML содержит массив, но каждый тег сначала начинается с «a:» (пример: <a:name>test</a:name>). Есть ли способ сказать сериализатору пропустить их?

Спасибо! * * 1004

Ответы [ 2 ]

1 голос
/ 09 марта 2010

a: определяет пространство имен XML. Вероятно, вы можете поместить оба Datacontracts в одно и то же пространство имен XML, и a: исчезнет. Хотя это все равно допустимый XML.

0 голосов
/ 09 марта 2010

Укажите пустое пространство имен для контрактов данных - что-то вроде этого:

[DataContract(Namespace="")]
public class YourClass
{  
  ....
}

[DataContract(Namespace="")]
public class YourArrayClass
{  
  ....
}

Это должно позаботиться об этом.

Но почему это вас беспокоит?Пространства имен XML являются неотъемлемой и важной частью XML, особенно при устранении неоднозначности элементов XML из различных источников .... посмотрите W3Schools , чтобы узнать, почему пространства имен XML важны и как избавиться от страха перед ними- настоятельно рекомендуется!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...