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

Localization 使用企业库异常管理时,如何本地化错误消息?,localization,enterprise-library,Localization,Enterprise Library,一般来说,我对本地化不是很熟悉,而且我对微软企业图书馆是全新的。如何创建本地化资源并在异常管理中使用它 我已经设置了一个替换处理程序,在我的策略处理异常时抛出一条友好的错误消息,其中有用于指定消息资源名称和消息资源类型的字段。我不知道这些领域会发生什么。我找不到任何例子。我明白了 您可以在.resx文件中添加标准资源,就像其他本地化一样。我的问题是,当我将资源类型和资源名称添加到企业库配置界面中的替换处理程序时,程序集不包含任何要添加的类型 问题在于两件事。在Visual Studio 2012

一般来说,我对本地化不是很熟悉,而且我对微软企业图书馆是全新的。如何创建本地化资源并在异常管理中使用它

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

我明白了

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

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


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

您不必手动编辑设计器文件;事实上,你不应该

我使用的是VS2010和C,但是VS2012和VB的概念应该是相同的

除了您的回答之外,以下链接对我了解这一点非常有帮助:

你可以忽略他关于App_GlobalResources的警告——这就是我的Exceptions.resx文件所在的位置,这对我很有用

确保企业库配置工具已关闭。 打开Designer.vb或Designer.cs文件,以便观察所发生的更改。 右键单击.resx文件并选择属性。 将生成操作更改为嵌入式资源。 将自定义工具更改为PublicResXFileCodeGenerator。这确保类在VB中生成为public,而不是internal或Friend。单击此属性之后,您应该会看到资源类现在在设计器文件中定义为public。 将自定义工具名称空间设置为有意义的内容,即资源。请注意,设计器文件中的命名空间已更改。 生成项目以获取程序集的新版本。 在配置工具中编辑EntLib配置文件,展开异常处理设置,然后展开要配置的Wrap或Replace处理程序。 单击省略号。。。在消息资源类型字段的末尾。这将打开类型浏览器。单击“从文件添加”,浏览到项目的bin文件夹,然后选择项目的主部件。该类型现在应显示在加载的程序集中。 展开程序集以查找上面输入的名称空间,展开该名称空间,选择已为异常消息创建的类型,然后单击“确定”。 将消息资源名称设置为保存此异常消息的资源文件中的密钥。
欢迎来到堆栈溢出!请注意标签是独立的。也就是说,使用enterprise and library标记您的问题与使用enterprise library标记不同。