第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步可能做错了吗?或者也许我在之前的步骤中做错了什么?
答案 0 :(得分:0)
您的资源文件相对于程序集位于何处?您应该创建一个目录,其中包含资源文件所用语言环境的名称(在您的情况下为en-US),然后将附属程序集放在那里。该目录应与原始程序集位于同一目录中。