给定通用接口及其实现:

public interface IGenericInterface<T> { ... }

public class GenericImplementation<T> : IGenericInterface<T> { ... }

我正在注册此DI使用

当然,这很好用.但我想从appsettings.json注入一个设置/配置,这就是我要解决的问题.

通常,我会使用services.AddTransient<IInterface>(x => new Implementation(x.GetRequiredService<IDependency>(), configuration["SomeSetting"]);

type注册依赖项时,是否可以将参数传递给依赖项?

推荐答案

您应该使用选项模式.

您需要将配置绑定到一个类,并为DI注册该类.然后在需要配置的类的构造函数中,通过构造函数将其传入.

此处的文档:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options?view=aspnetcore-6.0

Csharp相关问答推荐

.NET框架4.7.2项目如何引用.NET Core 2.2库?

使用变量子根名称在C#中重新初始化SON文件

如何从泛型方法返回一个可为空的T,其中T:notnull?

如何使用ConcurentDictionary属性上的属性将自定义System.Text.Json JsonConverter应用于该属性的值?

图形API基于appid列表检索多个应用程序

Azure DEVOPS找不到定制的Nuget包

使用两个不同的枚举作为Switch语句中的CASE生成唯一值

Azure函数中实体框架核心的依赖注入

该函数不能检测两条曲线的交点

LINQ to Entities中的加权平均值

在C#中过滤Excel文件

用于获取字符串的最后12个字符的正则表达式(空格除外)

.NET Google Workspace API获取错误CS0266

C#静态抽象属性不能被子接口覆盖

WPF:如何从DatagridHeader的内容模板绑定到词典项

SharpZipLib在文件名前加上目录名,生成tar.gz

嵌套Blazor组件内的验证

我什么时候不应该在Dispose中调用EgSuppressFinalize(This)?

MudRadioGroup不切换

组件';EditForm';使用与包含子内容元素';授权';相同的参数名称(';上下文';)