为多种语言使用全局资源文件时命名空间冲突
Namespace conflit while using global resource file for multiple languages
我创建了两个资源文件,名称为:
- ManageUserResources.resx
- ManageUserResources.zn-CN.resx
现在designer.cs中各自的命名空间是:
- 资源
- Resources.ManageUserResources
//错误:命名空间资源已包含 ManageUserResources 的定义
- 名称空间与 class(同名)之间是否存在冲突?
- 这个问题有什么解决办法吗?
在为多种语言的名称空间创建资源文件时,请始终确保检查正确的文化代码。在你的例子中是 ManageUserResources.zn-CN.resx
。考虑到你想 select 中国,它应该是 ManageUserResources.zh-CN.resx
中国的代码是 zh-CN
,这不应该被替换。
解决您的问题:
具体错误发生在 Resources.Designer.cs
您可以删除该文件并让 Visual studio 重新生成它。
我也遇到过这个问题,那是因为我创建了一个新的命名空间,但是父命名空间包含一个同名的class。
为了找到这个,我使用了对象浏览器并搜索了已经定义的项目的名称。
如果在您仍然遇到错误时它不允许您执行此操作,请暂时更改它所抱怨的项目的名称,然后找到有问题的项目。
希望对您有所帮助。
我创建了两个资源文件,名称为:
- ManageUserResources.resx
- ManageUserResources.zn-CN.resx
现在designer.cs中各自的命名空间是:
- 资源
- Resources.ManageUserResources
//错误:命名空间资源已包含 ManageUserResources 的定义
- 名称空间与 class(同名)之间是否存在冲突?
- 这个问题有什么解决办法吗?
在为多种语言的名称空间创建资源文件时,请始终确保检查正确的文化代码。在你的例子中是 ManageUserResources.zn-CN.resx
。考虑到你想 select 中国,它应该是 ManageUserResources.zh-CN.resx
中国的代码是 zh-CN
,这不应该被替换。
解决您的问题:
具体错误发生在 Resources.Designer.cs
您可以删除该文件并让 Visual studio 重新生成它。
我也遇到过这个问题,那是因为我创建了一个新的命名空间,但是父命名空间包含一个同名的class。
为了找到这个,我使用了对象浏览器并搜索了已经定义的项目的名称。
如果在您仍然遇到错误时它不允许您执行此操作,请暂时更改它所抱怨的项目的名称,然后找到有问题的项目。
希望对您有所帮助。