我们正在考虑使用xml文件来存储我们的C#应用程序的错误代码。对于以下两种结构,哪种更好?
<error>
<code>0x00000001</code>
<description>Error PIB: Clamp</description>
<reaction>Display</reaction>
</error>
或
<error code=0x00000001 >
<description>Error PIB: Clamp</description>
<reaction>Display</reaction>
</error>
还是你更好的建议?
似乎第二个节省了一些空间并且通过它进行查找?
我需要通过查找description
来获取reaction
和error code
字符串。你有一个有效的方法来查找文件吗?
答案 0 :(得分:5)
如果您使用的是节省空间的技术,我建议您不要首先使用XML:)
我个人更喜欢第一种方法而不是第一种方法,但两种方法都有效。如果这只是用于查找,我建议您在加载文件时将其转换为Dictionary<String, ErrorInformation>
或类似的东西。 (您可以将键值设置为数值类型,但这需要解析当然的值。)
LINQ to XML使得进行这种转换非常容易:
XDocument xml = XDocument.Load("errorcodes.xml");
var dictionary = xml.Descendants("error")
.ToDictionary(element => (string) element.Attribute("code"),
element => new ErrorInformation(
(string) element.Element("description"),
(string) element.Element("reaction")));
答案 1 :(得分:1)
通常,如果您希望code
描述元素,请将其设为属性。如果您希望code
成为一个元素(意味着code
也需要属性甚至是子信息),请将其设为子项。
在您的代码中,选项2最好是IMO