获取Message方法:
public class ResourceHelper { private static ErrorCode ErrorMsg; private static string ResourcePath = ConfigManager.Configs["ResourceParames"].ResourcePath.Value; static ResourceHelper() { ErrorMsg = GetErrorMessage(); } private static ErrorCode GetErrorMessage() { string path = System.IO.Path.Combine(HttpContext.Current.Server.MapPath("~/"), ResourcePath); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(path); using (StringReader sr = new StringReader(xmlDoc.OuterXml)) { XmlSerializer xmldes = new XmlSerializer(typeof(ErrorCode)); ErrorCode errorInfo = xmldes.Deserialize(sr) as ErrorCode; return errorInfo; } } public static Message GetMessage(string errorCode) { var errorInfo = ErrorMsg.ErrorCodeList.FirstOrDefault(p => p.Key == errorCode); if (errorInfo == null) { return new Message() { Code = "001", Msg = "资源未找到!" }; } return errorInfo; } }
实体类定义:
[XmlRoot("ErrorCode")] public class ErrorCode { [XmlArray("Messages")] [XmlArrayItem("Message")] public List<Message> ErrorCodeList { get; set; } } public class Message { [XmlAttribute("key")] public string Key { get; set; } [XmlAttribute("code")] public string Code { get; set; } [XmlAttribute("msg")] public string Msg { get; set; } }
配置文件格式:
<?xml version="1.0" encoding="utf-8" ?> <ErrorCode culture="zh-CHS"> <Messages> <!--订单--> <Message key="OrderNotExists" code="OO0001" msg="订单信息不存在" /> <Message key="OrderNotExists" code="OO0001" msg="订单信息不存在" /> <Message key="OrderNotExists" code="OO0001" msg="订单信息不存在" /> <!--门店--> <!--车辆--> <!--门店--> </Messages> </ErrorCode>
配置文件路径:ConfigFiles/Ford/ErrorResource.xml