第 1 步:好的,我知道我已经阅读了网上关于这个的每一页,所以我终于崩溃了,最终来到了 SOF。
这是我的资源文件代码:
using (ResourceWriter rw = new ResourceWriter(@"C:\pathto\errors.resources"))
{
rw.AddResource("String1", "en-US");
}
很明显,现在我创建了我的 errors.resources 文件,其中包含名为 String1 的字符串资源,其中包含“en-US”的值。
第 2 步:然后,我只需使用以下命令创建我的卫星程序集:
c:\>al /t:lib /culture:en-US /embed:C:\pathto\errors.resources /out:C:\pathto\bin\en-US\MyWeb.Ext.errors.resources.dll
好吧……太酷了。
第 3 步:所以现在在我的项目中:
Thread.CurrentThread.CurrentCulture = newCulture;
Thread.CurrentThread.CurrentUICulture = newCulture;
ResourceManager rm = new ResourceManager("MyWeb.Ext.errors", this.GetType().Assembly);
ViewData["String1"] = rm.GetString("String1");
但无论我做什么......我都无法访问程序集中的字符串资源。我可以在项目中包含我的 errors.resources 文件并以这种方式获取它,但我需要它在这个程序集中,这样我也可以将此程序集用于另一个项目!
有人可以告诉我我在第 3 步可能做错了什么吗?或者我在前面的步骤中做错了什么?