XAttribute Конструкторы
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр класса XAttribute.
Перегрузки
XAttribute(XAttribute) |
Инициализирует новый экземпляр класса XAttribute из другого объекта XAttribute. |
XAttribute(XName, Object) |
Инициализация нового экземпляра класса XAttribute из указанного имени и значения. |
XAttribute(XAttribute)
Инициализирует новый экземпляр класса XAttribute из другого объекта XAttribute.
public:
XAttribute(System::Xml::Linq::XAttribute ^ other);
public XAttribute (System.Xml.Linq.XAttribute other);
new System.Xml.Linq.XAttribute : System.Xml.Linq.XAttribute -> System.Xml.Linq.XAttribute
Public Sub New (other As XAttribute)
Параметры
- other
- XAttribute
Объект XAttribute для копирования.
Исключения
Параметр other
имеет значение null
.
Примеры
В этом примере показано, что создание глубокой копии XML-дерева создает копию, а не клон атрибута в дереве.
XElement root1 = XElement.Parse("<Root Att1='abc' />");
// Make a deep copy.
XElement root2 = new XElement(root1);
if (root1.Attribute("Att1") == root2.Attribute("Att1"))
Console.WriteLine("This will not be printed");
else
Console.WriteLine("Creating a deep copy created a new attribute from the original.");
Dim root1 As XElement = <Root Att1='abc'/>
' Make a deep copy.
Dim root2 As XElement = New XElement(root1)
If root1.Attribute("Att1") Is root2.Attribute("Att1") Then
Console.WriteLine("This will not be printed")
Else
Console.WriteLine("Creating a deep copy created a new attribute from the original.")
End If
В этом примере выводятся следующие данные:
Creating a deep copy created a new attribute from the original.
Комментарии
Этот конструктор в основном используется внутренне при создании глубокой копии XML-дерева.
См. также раздел
Применяется к
XAttribute(XName, Object)
Инициализация нового экземпляра класса XAttribute из указанного имени и значения.
public:
XAttribute(System::Xml::Linq::XName ^ name, System::Object ^ value);
public XAttribute (System.Xml.Linq.XName name, object value);
new System.Xml.Linq.XAttribute : System.Xml.Linq.XName * obj -> System.Xml.Linq.XAttribute
Public Sub New (name As XName, value As Object)
Параметры
Исключения
Значение параметра name
или параметра value
— null
.
Примеры
В следующем примере этот конструктор используется для создания атрибутов. Он передает строки в качестве первого аргумента конструктору XAttribute , которые затем неявно преобразуются в XName объекты. Атрибуты добавляются в элемент.
XElement root;
double dbl = 12.345;
XAttribute[] attArray = {
new XAttribute("Att4", 1),
new XAttribute("Att5", 2),
new XAttribute("Att6", 3)
};
DateTime dt = new DateTime(2006, 10, 6, 12, 30, 00);
// string content
root = new XElement("Root",
new XAttribute("Att1", "Some text"),
// double content
new XAttribute("Att2", dbl),
// DateTime content
new XAttribute("Att3", dt),
// XAttribute array content
attArray
);
Console.WriteLine(root);
Dim dbl As Double = 12.345
Dim attArray As XAttribute() = { _
New XAttribute("Att4", 1), _
New XAttribute("Att5", 2), _
New XAttribute("Att6", 3) _
}
Dim dt As DateTime = New DateTime(2006, 10, 6, 12, 30, 0)
Dim root As XElement = <Root Att1="Some text"
Att2=<%= dbl %>
Att3=<%= dt %>
<%= attArray %>
/>
Console.WriteLine(root)
В этом примере выводятся следующие данные:
<Root Att1="Some text" Att2="12.345" Att3="2006-10-06T12:30:00" Att4="1" Att5="2" Att6="3" />
Комментарии
Существует неявное преобразование из строки в XName. Обычно этот конструктор используется для указания строки в качестве первого параметра вместо создания нового XName, как показано ниже.
XElement root = new XElement("Root",
new XAttribute("AnAttributeName", "Content")
);
Вы также можете использовать перегрузку оператора сложения с строкой XNamespace и строкой для создания следующего XName:
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
new XAttribute(aw + "AnAttributeName", "Content")
);
Дополнительные сведения см. в разделе "Работа с пространствами имен XML".
Эти же подходы будут работать для Visual Basic, однако XML-литералы обеспечивают лучший подход к созданию деревьев XML.
Параметр value
может иметь значение aString, , double
, float
, decimal
, bool
или DateTimeTimeSpan. Если значение равно DateTime или TimeSpan, значение атрибута правильно отформатировано в соответствии со спецификациями W3C.