Атрибут XML не получает префикс пространства именC#

Место общения программистов C#
Ответить
Anonymous
 Атрибут XML не получает префикс пространства имен

Сообщение Anonymous »

Во время сериализации мне нужно сгенерировать следующий XML:
(фрагмент)

Код: Выделить всё

2013-12-18
00:15:28

Рассматриваемый класс выглядит следующим образом:

Код: Выделить всё

public class IncidentEvent
{
public string EventDate { get; set; }
public string EventTime { get; set; }

[XmlAttribute("EventTypeText", Namespace = "http://foo")]
public string EventTypeText { get; set; }

}
Похоже, что сериализатор замечает, что пространство имен уже объявлено в xmlns: в корне, и игнорирует мой атрибут. Я также попробовал следующее:

Код: Выделить всё

[XmlRoot(Namespace = "http://foo")]
public class IncidentEvent
{
public string EventDate { get; set; }
public string EventTime { get; set; }

private XmlSerializerNamespaces _Xmlns;

[XmlNamespaceDeclarations]
public XmlSerializerNamespaces Xmlns
{
get
{
if (_Xmlns == null)
{
_Xmlns = new XmlSerializerNamespaces();
_Xmlns.Add("ett", "http://foo");
}

return _Xmlns;
}

set
{
_Xmlns = value;
}
}

[XmlAttribute("EventTypeText", Namespace = "http://foo")]
public string EventTypeText { get; set; }

}
В результате получится следующий XML:

Код: Выделить всё

  
2013-12-18
00:15:28

Это не то, чего я хочу. У элемента не должно быть префикса, он должен быть у атрибута. Что нужно, чтобы сериализатор понял, чего я хочу?

Подробнее здесь: https://stackoverflow.com/questions/206 ... ace-prefix
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»