如何将resx文件共享到Asp.Net Core MVC中同一解决方案中的另一个项目

时间:2018-01-01 13:13:28

标签: asp.net-core localization resources

我使用了Asp.Net Core MVC,我使用resx文件进行本地化。

配置如下:

services.AddMvc()
                .AddViewLocalization(
                    LanguageViewLocationExpanderFormat.Suffix,
                    opts => { opts.ResourcesPath = "Resources"; })
                .AddDataAnnotationsLocalization();

            services.Configure<RequestLocalizationOptions>(
                opts =>
                {
                    var supportedCultures = new[]
                    {
                        new CultureInfo("en-US"),
                        new CultureInfo("en")
                    };

                    opts.DefaultRequestCulture = new RequestCulture("en");
                    // Formatting numbers, dates, etc.
                    opts.SupportedCultures = supportedCultures;
                    // UI strings that we have localized.
                    opts.SupportedUICultures = supportedCultures;
                });

我有两个解决方案的项目:

- Application.Web
- Application.Tests

我试图创建一些集成测试,例如尝试访问主页并声明是否存在这样的文本:

[Fact]
    public async Task ReturnInitialHomePage()
    {
        //Get claims for admin
        _client.SetAdminClaimsViaHeaders();

        // Act
        var response = await _client.GetAsync("/home/index");

        // Assert
        response.EnsureSuccessStatusCode();
        var responseString = await response.Content.ReadAsStringAsync();

        // How here load the resx file with title?
        responseString.Contains("Home Page Title").Should().BeTrue();
    }

我的问题是 - 如何将我的resx文件共享到项目Application.Tests:

Application.Web\Resources\Views\Home\Index.en.resx

responseString.Contains("Home Page Title").Should().BeTrue(); - How can I read the key from resx file?

我已经尝试过使用--Application.Web.Resources.View.Home.Index但这些路径不存在。

尝试使用访问修饰符公开 - 但遗憾的是仍无法找到。 enter image description here

另一个问题是 - 是否有可能在那里配置将用于测试的语言?我认为默认英语是可以的,但是对于另一种类型的测试。

0 个答案:

没有答案