ABP功能管理 - 如何添加新范围



我正在使用ASP.NET样板和模块零开发事件管理应用程序。

ASP.NET样板中包含的功能管理允许将功能范围范围范围范围范围。

我想知道是否可以将功能扩展到活动中,因此我可以将应用程序的特定功能分配给我们的租户创建的每个事件。

这可能吗?用ABP实施此操作的最佳方法是什么?

我想知道是否可以扩展功能以范围扩展到事件...这是可能的吗?

当然。您可以:

  • 子类Feature
  • 子类FeatureSetting
  • 创建一个新的FeatureScopes枚举,以包括Events
  • 实施并替换IFeatureChecker
  • 实施并替换IFeatureManager
  • FeatureValueStore中的覆盖方法

看起来像很多工作。但是这样做是为了维护性和关注点分离。

用ABP实施此操作的最佳方法是什么?

最好使用Feature AS-IS,为租户启用,然后替换FeatureChecker

public async Task<string> GetValueAsync(int tenantId, string name)
{
    var feature = _featureManager.Get(name);
    var value = await FeatureValueStore.GetValueOrNullAsync(tenantId, feature);
    if (value == null)
    {
        return feature.DefaultValue;
    }
    // Check if Feature is enabled for Event
    // ...
    return value;
}

最新更新