【问题标题】:Asp.net resources - prevent error on page when resource reference is invalidAsp.net 资源 - 资源引用无效时防止页面出错
【发布时间】:2010-09-20 16:43:01
【问题描述】:

我正在使用这样的资源; " runat="服务器" />

资源保存在数据库中,并在添加新翻译时生成资源文件。有时会发生对键的错误引用。这会导致整个页面出错。

当资源不存在时,如何防止整个页面崩溃?我只想要一个缺少资源的小错误消息,例如“未找到:Users.DetailsUserHeadline”。

我还想从后面的代码中动态检索资源,方法是将键定义为字符串“Users.DetailsUserHeadline”,没有任何错误。

建议?

【问题讨论】:

    标签: asp.net resources dynamic


    【解决方案1】:

    如果你想在没有找到资源的情况下使用ResourceKey,只需修改用于获取资源的方法即可。它应该看起来像:

    public class ResourceManager
    {
       public static string GetResource(string key)
       {
          string val = TryGet(key);
          if (string.IsNullorEmpty(val)) val = key;
          return val;
          //or you don't use a TryGet method
          //try
          //{
          //   val = GetTheResource(key);
          //}
          //catch (ResourceNotFoundException e)
          //{
          //   val = key;
          //}
       }
    }
    

    如果您想向用户显示找不到资源的提示,您需要编写自己的异常,例如:

    public class ResourceNotFoundException : Exception
    {
       // define the properties you want to get
    }
    

    并在尝试获取资源时使用throw new ResourceNotFoundException()。在您的 UI 部分,您可以捕获异常并向用户显示一些内容。

    【讨论】:

    • 您好,感谢您的回答!我在我的项目中找不到 ResourceManager(其他人在项目中创建了资源部分),是否该项目使用了资源使用的标准实现?我可以以某种方式覆盖它吗?
    猜你喜欢
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    相关资源
    最近更新 更多