在域服务中设置 LocalizationSourceName

set LocalizationSourceName in domain service

我有一个 class 扩展 DomainService 摘要 class 如下:

public class ScheduleManager : DomainService, IScheduleManager

以下行不起作用:

throw new UserFriendlyException(L("ScheduleIsNotValid"));

因为: Abp.AbpException: 必须先设置LocalizationSourceName,才能获取LocalizationSource

只是想知道设置 LocalizationSourceName 的正确位置在哪里,就像在 MyCarParkControllerBase 中设置的那样,但是在核心(域)层中?

顺便说一下,在 UserRegistrationManager class 中有两种本地化用法:

Line 96 >>> throw new UserFriendlyException(L("UnknownTenantId{0}", tenantId));
Line  101 >>> throw new UserFriendlyException(L("TenantIdIsNotActive{0}", tenantId));

由于同样的问题而失败!

干杯,

在核心项目中,为 DomainService 创建一个抽象基础 class。 在构造函数中设置本地化源。 就是这样!

更清楚一点:

AbpServiceBase 实现属性 LocalizationSourceName:

protected string LocalizationSourceName { get; set; }

核心模块中,您可以在PreInitialize中找到本地化配置器:

MyProjectLocalizationConfigurer.Configure(Configuration.Localization);

Configure 方法中你可以看到 Localization 的名称,这个名称需要在构造函数中使用,就像@Alber Ebicoglu 已经显示的那样。

像这样:

public AbpLoginResultTypeHelper(IAccountAppService accountAppService)
{
    LocalizationSourceName = MyProjectConsts.LocalizationSourceName; //Localization name
    _accountAppService = accountAppService;
}