我在一个名为Common的项目中有两个资源文件,分别为String.arg.resx和String.en.rex。
然后我的Service项目中有一个名为LocalizationService的类,代码如下:
public class LocalizationService
{
private ResourceManager resourceManager;
private CultureInfo cultureInfo;
public LocalizationService()
{
SetDefaultCultureAndResource();
}
private void SetDefaultCultureAndResource()
{
cultureInfo = CultureInfo.CreateSpecificCulture("en");
resourceManager = new ResourceManager("Common.Resources.String", Assembly.GetAssembly(typeof(Common.Resources));
}
public void ChangeLanguage(Languages languages)
{
switch (languages)
{
case Languages.Español:
cultureInfo = CultureInfo.CreateSpecificCulture("es");
resourceManager = new ResourceManager("Common.Resources.String", typeof(LocalizationService).Assembly);
break;
case Languages.English:
cultureInfo = CultureInfo.CreateSpecificCulture("en");
break;
default:
cultureInfo = CultureInfo.CreateSpecificCulture("en");
break;
}
}
public string GetString(string value)
{
return resourceManager.GetString(value, cultureInfo);
}
}
但是resourceManager = new ResourceManager("Common.Resources.String", Assembly.GetAssembly(typeof(Common.Resources));
行不起作用,因为我看不到Common.Resources。
我应该使用哪个Assembly类方法?
答案 0 :(得分:0)
好吧……看来我找到了答案,我只是在资源文件所在的程序集中放置了一个类。