Как создать атрибут XAttribute без префиксов пространства имен?

Рейтинг: 0Ответов: 1Опубликовано: 04.05.2015
XElement parent = /* некий код */;
XName name = XName.Get("Content", parent.Name.NamespaceName);
XAttribute att = new XAttribute(name, "Value");
parent.Add(att);
MessageBox.Show(att.ToString());

Выводит

p0:Content="Value"

Как избавиться от префикса p0 ? Из-за него в parent пространство имен дублируется и SaveOptions.OmitDuplicateNamespaces не помогает, так как префиксы разные.

Ответы

▲ 1Принят

Я нашел ответ на свой вопрос, хотя у меня возник другой.

Первый конструктор

Второй конструктор

Как видим Visual Studio 2013 показывает, что конструкторов только 2. Однако следующий код вполне работает:

XAttribute att = new XAttribute("Content", "Value");
MessageBox.Show(att.ToString());

Выводит Content="Value" и уже нормально добавляется в родителя.

В чем тут фишка с конструкторами я не понимаю.