gpt4 book ai didi

c# - 如何从 T 的自定义实例创建 IOptions(不通过 DI)

转载 作者:行者123 更新时间:2023-12-04 15:50:37 26 4
gpt4 key购买 nike

我想将一个值传递给 IOptions<T>范围。

我只能找到使用IOptions<T>的例子使用配置,但我需要在调用方法时定义一个自定义值

最佳答案

我假设您在询问如何创建自定义 IOptions<TOptionClass>您指定 T 实例的值要使用的。以下是您可以如何做到这一点:

假设您有一个名为 IdentityOptions 的类就像你的例子一样。

首先创建它的一个实例:

var optionsInstance = new IdentityOptions();
// ... set properties on it as needed

然后将其转换成一个选项容器:

IOptions<IdentityOptions> optionParameter = Options.Create(optionsInstance);

参见 MSDN .

更新:我比 OP 自己的解决方案慢了几秒钟。让我添加一个可能的扩展方法解决方案,这样这个答案仍然有一些附加值(未测试):

public static IOptions<TOptions> AsIOption<TOptions>(this TOptions optionInstance) where TOptions : class, new()
{
return Microsoft.Extensions.Options.Options.Create(optionInstance);
}

然后您可以将其用作 optionInstance.AsIOption() .我不确定它是否值得付出努力(如果没有必要,我不喜欢污染 Object 类),但肯定是可能的,并且如果您在许多不同的地方使用这种技术可能会很有用。

关于c# - 如何从 T 的自定义实例创建 IOptions<T>(不通过 DI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53962701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com