使用企业库异常管理时如何本地化错误消息?

时间:2012-09-17 11:56:47

标签: localization enterprise-library

我对本地化一般不太熟悉,而且我是微软企业库的新手。如何创建本地化资源并在异常管理中使用它?

我设置了一个替换处理程序,以便在我的策略处理异常时抛出友好的错误消息,并且其中有用于指定消息资源名称和消息资源类型的字段。我不知道这些领域发生了什么。我找不到任何例子。

2 个答案:

答案 0 :(得分:1)

您不必手动编辑Designer文件;事实上,你不应该。

我正在使用VS 2010和C#,但VS 2012和VB的概念应该相同。

以下链接对我来说非常有帮助,除了你的答案之外,还要弄清楚:

http://odetocode.com/blogs/scott/archive/2009/07/16/resource-files-and-asp-net-mvc-projects.aspx

(你可以忽略他关于App_GlobalResources的警告 - 这就是我的Exceptions.resx文件,这对我有用。)

  1. 确保已关闭“企业库配置”工具。
  2. 打开Designer.vb(或Designer.cs)文件,以便观察发生的变化。
  3. 右键单击.resx文件,然后选择“属性”。
  4. 构建操作更改为嵌入式资源
  5. 自定义工具更改为 PublicResXFileCodeGenerator 。这可以确保将类生成为公共类,而不是内部类(或VB中的Friend)。单击此属性后,您应该会在Designer文件中看到您的资源类现已定义为public。
  6. 自定义工具命名空间设置为有意义的内容,即< ApplicationName> .Resources 。请注意,Designer文件中的命名空间已更改。
  7. 构建项目以获得新版本的程序集。
  8. 在配置工具中编辑EntLib配置文件,展开“异常处理设置”,然后展开要配置的“换行或替换处理程序”。
  9. 点击消息资源类型字段末尾的省略号(...)。这会打开Type Browser。单击“从文件添加”,浏览到项目的bin文件夹,然后选择项目的主程序集。该类型现在应该出现在已加载的程序集中。
  10. 展开程序集以查找上面输入的命名空间,展开它,选择为异常消息创建的类型,然后单击“确定”。
  11. 邮件资源名称设置为包含此例外邮件的资源文件中的密钥。

答案 1 :(得分:0)

我想出来了。

您可以像在任何其他本地化一样在.resx文件中添加标准资源。我的问题是,当我将资源类型和资源名称添加到企业库的配置界面中的替换处理程序时,程序集不包含任何要添加的类型。

问题是两件事。使用VB.Net在Visual Studio 2012中创建.resx时,它使用My.Resources作为命名空间。它可能是我的。[FolderName],我不知道。另一个问题是它将类创建为Friend,而不是Public。

我必须更改属性中的命名空间,并在.vb文件中手动将Friend更改为Public。每当我添加新资源时它都会改变,因为它会重新生成代码,但至少现在我可以使它工作。