我有一个项目,它广泛使用GetGlobalResourceObject,它是System.Web.UI类的成员。它可以很好地为双语C#/ ASP.NET应用程序提供英语或法语标签。
但....如果资源文件中的引用丢失或格式错误,应用程序崩溃
有数百个这样的电话
GetGlobalResourceObject(“XXX.WebResource”,“删除”)
有没有办法用一个异常处理程序封装GetGlobalResourceObject,以便它返回null并在没有为每次调用添加try / catch时出现问题时记录它?
我是C#的新手,所以我不知道我是否可以用自己的类覆盖GetGlobalResourceObject,然后进行搜索和替换。当然有更好的方法。
Kevinsky
答案 0 :(得分:2)
您可以编写自己的GetGlobalResourceObject
版本来嵌入异常处理并登录:
public static Object MyGetGlobalResourceObject (string classKey,
string resourceKey)
{
try
{
return GetGlobalResourceObject (classKey, resourceKey);
}
catch (MissingManifestResourceException ex)
{
// log error
return null;
}
}
此代码作为起点提供
您甚至可以在HttpContext
上将其作为扩展方法编写。
你必须进行全局搜索并替换以调用它而不是基本方法,这不是最优雅的解决方案,但它会起作用。