当我使用LINQ创建XML文档时,当我向具有某些属性的Root元素中添加一些XElement时,以及当我使用LINQ读取该文档的XElement时,默认情况下XAttributes.Value的返回值为字符串!
为了将此值分配给布尔类型的变量,必须调用函数“ 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的值必须为长类型!
名为“ IsEvenNumber”的XAttribute的值必须是布尔类型!
我需要知道:是否可以创建带有一些XAttributes的XElement,保存它,再次读取它,并将其XAttributes.Value分配给某些布尔型变量,而无需调用“ Convert.ToBoolean()”函数?
最佳答案
不幸的是,XElement.Value
属性似乎是一个字符串。
http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.value(v=vs.90).aspx
因此,您将始终必须将值转换为数据类型。