Значение атрибута элементов 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

Таким образом, вам всегда придется приводить значение к вашему типу данных.

Другие вопросы по тегам