我正在制作ASP.NET Core 1.1应用程序并尝试设置本地化。ASP.NET核心1.1本地化通用服务
当我在我的ValuesController
上执行IStringLocalizer
时,它工作正常,本地化我的资源文件。
public ValuesController(IStringLocalizer<ValuesController> localizer, IService<BaseEntity> service)
{
_localizer = localizer;
_service = service;
}
上面的代码在“Resources/Controllers/ValuesController.en-US.resx”中查找我的资源。
但是,当我尝试使用通用服务注入IStringLocalizer
时,它无法找到我的资源文件。
public class Service<T> : IService<T>
where T : BaseEntity
{
#region Properties
protected IRepository Repository { get; set; }
protected IUnitOfWorkFactory UnitOfWorkFactory { get; set; }
private readonly ILogger _logger;
private readonly IStringLocalizer _localizer;
#endregion
#region Ctor
public Service(IRepository repository, IUnitOfWorkFactory unitOfWorkFactory,
ILogger<Service<T>> logger, IStringLocalizer<Service<T>> localizer)
{
Repository = repository;
UnitOfWorkFactory = unitOfWorkFactory;
_logger = logger;
_localizer = localizer;
}
}
上面的代码并没有在“资源/服务/基/ Service.en-US.resx”
找到我的资源上如何做到这一点任何想法?
--- EDIT
MyControl.Api(Startup.cs)
命名空间MyControl.Api
services.AddLocalization(options => options.ResourcesPath = "Resources");
这条线是内部 “MyControl.Api”,用的是命名空间中的“MyControl.Api”。
在“资源/控制器”
我的服务是命名空间“MyControl.Services”
在这个项目中的资源文件夹(同一个解决方案中的两个项目)这个aplication工作的资源文件夹是
“资源/服务/基地”
我的服务文件的命名空间是 “MyControl.Services.Services.Base”
默认情况下,如果路径资源文件是正确的它应该工作。请添加服务的名称空间和您的'services.AddLocalization'调用问题。 –
已添加。 Service.cs命名空间>“MyControl.Services.Services.Base” “MyControl.Services”项目中的资源文件夹“Resources/Services/Base” –