EasyNotice icon indicating copy to clipboard operation
EasyNotice copied to clipboard

建议改进 UseDingTalk、UseWeixin中,传入配置的方式

Open andywu188 opened this issue 1 month ago • 0 comments

目前在使用 UseDingTalk时,只能从配置文件中读取配置,没法使用IServiceProvider 获取数据访问服务,从数据库中查询配置信息,建议改进UseDingTalk的参数,如下:

    public static EasyNoticeOptions UseDingTalk(
        this EasyNoticeOptions options,
        Action<DingtalkOptions, IServiceProvider> configure
        )

将configure的参数增加一个 IServiceProvider,有了它,可以实现从任何服务中加载配置信息,例如从数据库中、从网络源等,不再是局限于配置文件

            config.UseDingTalk((option, serviceProvider) =>
            {
                //从数据库中加载配置信息
                var context = serviceProvider.GetRequiredService<DbContext>();
                var entity = context.Db.Queryable<Config>().First(it => it.Id == 1);
                option.WebHook = entity.DingTalkWebHook;
                option.Secret = entity.DingTalkSecret;
            });

andywu188 avatar Nov 01 '25 16:11 andywu188