Значение атрибута элементов XML всегда является типом данных строки?
Когда я создаю XML-документ с использованием LINQ, когда я добавляю некоторый XElement в элемент Root с некоторыми атрибутами и когда я читаю XElement этого документа с помощью LINQ, возвращаемое значение XAttributes.Value по умолчанию является строкой!
Чтобы присвоить это значение переменной типа bool, необходимо вызвать функцию "Convert.ToBoolean()"
XDocument Xd = new XDocument(new XElement("Numbers"));
Xd.Root.Add(new XElement("13", new XAttribute("Name", "13")
, new XAttribute("IsEvenNumber", false)
, new XAttribute("HowManyDevidersItHas", 2)));
Xd.Save(@"C:\XDocument.xml");
bool b1 = Convert.ToBoolean(XD1.Root.Element("13").Attribute("IsEvenNumber").Value);
...
Как вы видете:
значение XAttribute с именем "Name" должно быть длинным типом!
значение XAttribute с именем "IsEvenNumber" должно быть типом bool!
Мне нужно знать: возможно ли создать XElement с некоторыми XAttributes, сохранить его, снова прочитать его и присвоить его XAttributes.Value некоторой переменной типа bool без вызова функции "Convert.ToBoolean()"?!
1 ответ
К сожалению нет, XElement.Value
Свойство выглядит как строка.
http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.value(v=vs.90).aspx
Таким образом, вам всегда придется приводить значение к вашему типу данных.