Ich mache eine ASP.NET Core 1.1 App und versuche, Lokalisierung einzurichten.ASP.NET Core 1.1 Localization Generischer Dienst
Wenn ich auf meiner ValuesController
die Implementierung von IStringLocalizer
mache, funktioniert es gut und lokalisieren meine Ressource-Datei.
public ValuesController(IStringLocalizer<ValuesController> localizer, IService<BaseEntity> service)
{
_localizer = localizer;
_service = service;
}
Der Code über meine Ressourcen auf "Resources/Controller/ValuesController.en-US.resx" finden.
Aber wenn ich versuche, die IStringLocalizer
mit einem generischen Dienst zu injizieren, kann es meine Ressourcendatei nicht finden.
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;
}
}
Der obige Code finden nicht meine Ressource auf "Ressourcen/Dienstleistungen/Basis/Service.en-US.resx"
Irgendeine Idee, wie man es tun?
--- EDIT
MyControl.Api (Startup.cs)
Namensraum MyControl.Api
services.AddLocalization(options => options.ResourcesPath = "Resources");
Diese Linie ist inside "MyControl.Api", wobei in dem Namensraum ist, "MyControl.Api".
die Ordner Ressourcen in dieser aplication Arbeit für "Resources/Controllers"
Meine Leistungen im Namensraum "MyControl.Services" sind
die Ordner Ressourcen in diesem Projekt (zwei Projekte innerhalb derselben Lösung) sind
"Resources/Dienstleistungen/Base"
der Namespace meiner Service-Datei ist "MyControl.Services.Services.Base"
standardmäßig sollte es funktionieren, wenn Pfad zu der Ressource-Datei korrekt ist. Fügen Sie den Namespace des Dienstes und Ihren Aufruf 'services.AddLocalization' hinzu. –
Hinzugefügt. Service.cs-Namespace> "MyControl.Services.Services.Base" Ressourcen-Ordner bei "MyControl.Services" Projekt> "Ressourcen/Dienste/Basis" –