我想在 App_GlobalResources 文件夹中创建一个名为“shopping.en-sg.resx”的新加坡英语 (en-sg) 资源文件。
我在编译过程中遇到错误。
错误 1 命名空间“资源”
已经包含了一个定义
“购物”c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary
网络平台
文件\web\2cd6afe9\737b0a13\App_GlobalResources.vomuzavz.1.cs 26
搜索 Google 后,我发现“en-sg”不是默认区域性,我必须为其创建自定义区域性。我不知道这个的详细步骤。
我应该怎么做才能创建文化并消除编译错误?
我按照 MSDN 中的示例,创建一个名为“shopping.x-en-US-sample.resx”的文件,并将以下代码放入 BasePage 的函数中(受保护的覆盖 void InitializeCulture()):
CultureAndRegionInfoBuilder cib = null;
cib = new CultureAndRegionInfoBuilder(
"x-en-US-sample", CultureAndRegionModifiers.None);
CultureInfo ci = new CultureInfo("en-US");
cib.LoadDataFromCultureInfo(ci);
RegionInfo ri = new RegionInfo("US");
cib.LoadDataFromRegionInfo(ri);
cib.Register();
ci = new CultureInfo("x-en-US-sample");
但编译错误依然存在。
UPDATED:
您可以通过在 app_globalresources 文件夹中创建一个空网站和两个文件“shopping.en-sg.resx”和“shopping.resx”来轻松重现该问题。
您可以基于现有文化创建新文化:
string culture = "en-sg";
string name = "Singaporean English";
CultureInfo cultureInfo = new CultureInfo("en-GB");
RegionInfo regionInfo = new RegionInfo(cultureInfo.Name);
CultureAndRegionInfoBuilder cultureAndRegionInfoBuilder = new CultureAndRegionInfoBuilder(culture, CultureAndRegionModifiers.None);
cultureAndRegionInfoBuilder.LoadDataFromCultureInfo(cultureInfo);
cultureAndRegionInfoBuilder.LoadDataFromRegionInfo(regionInfo);
// Custom Changes
cultureAndRegionInfoBuilder.CultureEnglishName = name;
cultureAndRegionInfoBuilder.CultureNativeName = name;
cultureAndRegionInfoBuilder.Register();
Added:刚刚查了一下参考资料:
我有 :
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
添加(根据评论更新):
关于错误消息:
您看到的错误是某些资源命名冲突的结果。检查资源名称,这些名称被编译到 dll 中,您需要检查命名空间名称是否不冲突。您可以使用反射器工具检查这一点:http://www.red-gate.com/products/reflector/ http://www.red-gate.com/products/reflector/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)