Подтвердить что ты не робот

Удалить пространство имен из сгенерированного XML в .NET.

Возможный дубликат:
XmlSerializer: удалить ненужные пространства имен xsi и xsd

Я генерирую некоторый XML, используя XMLSerializer и класс, отмеченный атрибутами. Этот XML отправляется на веб-службу REST.

Он генерирует следующий XML:

<?xml version="1.0" encoding="utf-8"?>
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <first-name>API</first-name>
  <last-name>TestPersonDeleteMe</last-name>
  <title>Delete me</title>
</person>

Все будет хорошо, за исключением того, что используемая веб-служба не понимает материал схемы и выдает ошибку 500.

Есть ли способ остановить XmlSerializer, добавив 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"' к тегу пользователя?

4b9b3361

Ответ 1

если вы используете пользовательский сериализатор, попробуйте это

XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty);

затем добавьте объект пространств имен в ваш сериализатор.