这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

30 lines
1000 B

using Microsoft.Extensions.Options;
using System;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Threading;
namespace LINGYUN.Abp
{
public class DynamicOptionsProvider<TValue> : IOptionsProvider<TValue>, ITransientDependency
where TValue : class, new()
{
public TValue Value => _lazyValueFactory.Value;
private readonly Lazy<TValue> _lazyValueFactory;
private readonly OneTimeRunner _oneTimeRunner;
public DynamicOptionsProvider(IOptions<TValue> options)
{
_oneTimeRunner = new OneTimeRunner();
_lazyValueFactory = new Lazy<TValue>(() => CreateOptions(options));
}
protected virtual TValue CreateOptions(IOptions<TValue> options)
{
// 用于简化需要在使用配置前自行调用此接口的繁复步骤
// await options.SetAsync();
// _onTimeRunner.Run(async () => await options.SetAsync());
return options.Value;
}
}
}