Когда я создаю 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()"?
К сожалению, свойство XElement.Value
выглядит как строка.
http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.value(v=vs.90).aspx
Таким образом, вам всегда нужно указать значение для вашего типа данных.