0

我正在尝试根据我传递的错误代码检索错误消息。我如何使用 linq 来做到这一点?

这是我的 xml 文档布局

<?xml version="1.0" encoding="utf-8" ?>
<errors>
  <error code="101" message="Our Database is currently experience problems!">   
  </error>
</errors>

这是我在 C# 中的加载代码

XmlDocument doc = new XmlDocument();
doc.Load(HttpContext.Current.Server.MapPath("/App_Data/ErrorCodes.xml"));
4

1 回答 1

0

好吧,你可以加载一次文档,把它变成Dictionary<int, string>这样:

var doc = XDocument.Load(HttpContext.Current.Server.MapPath("/App_Data/ErrorCodes.xml"));
var errors = doc.Root.Elements("error")
                .ToDictionary(x => (int) x.Attribute("code"),
                              x => (string) x.Attribute("message"));

(您可以在 Web 应用程序加载时执行此操作。)

或者,如果您真的只需要查找一条消息:

var doc = XDocument.Load(HttpContext.Current.Server.MapPath("/App_Data/ErrorCodes.xml"));
var errors = doc.Root.Elements("error")
                .Where(x => (int) x.Attribute("code") == code)
                .Single()
                .Attribute("message").Value;

请注意,这XDocument是 LINQ to XML 的一部分;XmlDocument不是。

于 2013-04-25T21:14:00.973 回答