2

当我使用 LINQ 创建 XML 文档时,当我将一些 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);
  ...

如您所见:
名为“Name”的XAttribute 的值必须为long 类型!
名为“IsEvenNumber”的 XAttribute 的值必须是 bool 类型!

我需要知道:是否可以使用一些 XAttributes 创建一个 XElement,保存它,再次读取它并将其 XAttributes.Value 分配给某个 bool 类型变量而不调用“Convert.ToBoolean()”函数?!

4

1 回答 1

2

不幸的是,该XElement.Value属性似乎是一个字符串。

http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.value(v=vs.90).aspx

因此,您将始终必须将值转换为您的数据类型。

于 2014-10-15T09:47:23.487 回答