14.功能FeatureProvider

weixin_33797791發表於2017-08-30

一、概述

二、使用

2.1定義

public class AppFeatureProvider : FeatureProvider
{
    public override void SetFeatures(IFeatureDefinitionContext context)
    {
        var sampleBooleanFeature = context.Create("SampleBooleanFeature", defaultValue: "false");
        sampleBooleanFeature.CreateChildFeature("SampleNumericFeature", defaultValue: "10");
        context.Create("SampleSelectionFeature", defaultValue: "B");
    }
}

2.2 配置

Configuration.Features.Providers.Add<AppFeatureProvider>();

2.3 呼叫

2.3.1通過特性

//ExportToExcel(是否為當前使用者啟用) 
//如果啟用那麼這個方法會被執行,如果沒有被啟用則丟擲異常。
[RequiresFeature("ExportToExcel")]
public async Task<FileDto> GetReportToExcel(...)
{
}

2.3.2 使用IFeatureChecker

public async Task<FileDto> GetReportToExcel(...)
{
    if (await FeatureChecker.IsEnabledAsync("ExportToExcel"))
    {
          throw new AbpAuthorizationException("You don't have ExportToExcel");
    }   
}
//獲取值
FeatureChecker.GetValue("MaxTaskCreationLimitPerMonth"))

2.3.3 通過客戶端

//isEnabled
var isEnabled = abp.features.isEnabled('SampleBooleanFeature');
//getValue
var value = abp.features.getValue('SampleNumericFeature');

相關文章