gpt4 book ai didi

c# - 使用 Net Core 默认 DI 注入(inject)字符串和服务

转载 作者:太空宇宙 更新时间:2023-11-03 14:38:22 25 4
gpt4 key购买 nike

我有一个 Net Core 2.1 控制台应用程序,我在其中执行如下操作:

class Program
{
static void Main(string[] args)
{
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", false)
.Build();

var fullPath = configuration.GetValue<string>("tempPath:fullPath");

serviceCollection.AddTransient<MyService>();
serviceCollection.AddTransient<Worker>();
...


public class Worker
{
public string FullPath {get; set;}
private readonly MyService _myService;

public Worker(MyService myService,
string fullpath)
{
_myService = myService;
FullPath=fullpath;
}

换句话说,我需要以某种方式在我的 Worker 类中注入(inject)服务和配置字符串。

有人可以建议我正确的方法吗?

最佳答案

只需将您的 DI 配置更改为以下内容:

var fullPath = configuration.GetValue<string>("tempPath:fullPath");
serviceCollection.AddTransient<MyService>();
serviceCollection.AddTransient<Worker>(x => new Worker(x.GetRequiredService<MyService>(), fullPath));

或者按照建议使用IOptions 接口(interface)将您的配置对象注入(inject)到类中。

关于c# - 使用 Net Core 默认 DI 注入(inject)字符串和服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59068820/

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