如何从另一个项目访问资源

时间:2020-05-29 20:05:46

标签: c#-4.0 localization

我在一个名为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类方法?

1 个答案:

答案 0 :(得分:0)

好吧……看来我找到了答案,我只是在资源文件所在的程序集中放置了一个类。

相关问题