我正在使用ASP.NET Boilerplate和Module Zero开发一个事件管理应用程序。
ASP.NET Boilerplate中包含的功能管理允许将功能范围扩展到版本或租户。
我想知道是否可以将功能范围扩展到事件,因此我可以为我们的租户创建的每个事件单独分配应用程序的特定功能。
这可能吗?使用ABP实现此目的的最佳方法是什么?
答案 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;
}