我有一个.NET Core Console应用程序,它与我的ASP.NET核心应用程序共享一些公共库。我需要将Globalization添加到公共项目中,在ASP.NET中我可以使用语言some.en.resx
轻松创建一个新的.resx文件
目前,我可以注册我的服务,它正在调用StringLocalizer类但不返回本地化字符串。我设法通过从文件中删除.en
来实现它,但这会破坏我的ASP.NET项目。
就像我需要在某处注册默认语言一样,但我无法在哪里工作。
class Program
{
static void Main(string[] args)
{
ServiceCollection serviceCollection = new ServiceCollection();
serviceCollection.AddTransient<MyService>();
serviceCollection.AddSingleton<LoggerFactory>();
serviceCollection
.AddLogging()
.AddLocalization();
ServiceProvider buildServiceProvider = serviceCollection.BuildServiceProvider();
MyService myService = buildServiceProvider.GetService<MyService>();
string greeting = myService.GetGreeting();
Console.WriteLine(greeting);
Console.ReadKey();
}
}
public class MyService
{
private readonly IStringLocalizer<MyService> _stringLocalizer;
public MyService(IStringLocalizer<MyService> stringLocalizer)
{
_stringLocalizer = stringLocalizer;
}
public string GetGreeting()
{
return _stringLocalizer.GetString("Greeting");
}
}
我有什么方法可以做到这一点吗?
答案 0 :(得分:1)
我还没有设法找到重复ASP.NET行为的方法。我不得不接受我不能拥有.en.resx文件,幸运的是还有一个文化&#34; en&#34; ASP.NET使用默认的.resx文件