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

时间:2017-12-18 20:02:13

标签: aspnetboilerplate

我正在使用ASP.NET Boilerplate和Module Zero开发一个事件管理应用程序。

ASP.NET Boilerplate中包含的功能管理允许将功能范围扩展到版本或租户。

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

这可能吗?使用ABP实现此目的的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

  

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

不确定。你可以:

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

看起来很多工作。但是它的可维护性和关注点分离就是这样做的。

  

使用ABP实现此目的的最佳方法是什么?

您最好按原样使用Feature,为租户启用,然后替换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;
}
相关问题