选项模式使我可以创建包含配置值的选项对象,如下所述:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options
我需要IDesignTimeDbContextFactory实现中一个选项对象的值,以供EF在创建模型时使用。 (该配置部分中的值将用于数据播种,因此我在数据库上下文构造函数中添加了IOptions。)
由于我无权访问IServiceCollection(因为这是设计时间,就像运行“dotnet ef迁移添加”时一样),所以我需要有另一种方法可以将IConfigurationSection(代表我感兴趣的部分)转换为自定义Options类。
我可以知道如何在没有依赖注入(inject)的情况下做到这一点吗?
最佳答案
您可以使用 Bind(Configuration, object)
扩展方法来执行任何object
的手动绑定(bind)。这是一个例子:
var myCustomOptions = new MyCustomOptions();
myConfigurationSection.Bind(myCustomOptions);
// Use myCustomOptions directly.
要将其包装在
IOptions<T>
中,请使用 Options.Create
:IOptions<MyCustomOptions> myOptions = Options.Create(myCustomOptions);
关于c# - 将IConfigurationSection转换为IOptions,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53166201/