我有一个服务需要在项目管道内注入和使用

//Register Service
builder.Services.AddScoped<IDbInitializer, DbInitializer>();

//Build App and Inject Service
var app = builder.Build();
var dbInitializer = app.Services.GetService<IDbInitializer>();

//Use 
dbInitializer.Initialize();

我将在注入此服务(或任何其他服务)时更新以下问题

problem image

推荐答案

为了需要作用域服务,您需要启动一个作用域,它将位于其中:https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-7.0#resolve-a-service-at-app-start-up

//Register Service
builder.Services.AddScoped<IDbInitializer, DbInitializer>();

//Build App and Inject Service
var app = builder.Build();
using (IServiceScope scope = app.Services.CreateScope())
{
    IDbInitializer dbInitializer = scope.ServiceProvider.GetRequiredService<IDbInitializer>();

    //Use 
    dbInitializer.Initialize();
}

Csharp相关问答推荐

使用特定格式的JsonConvert序列化对象

始终保留数组中的最后N个值,丢弃最老的

NumPy s fftn in C#with pythonnet'

如何注册接口类型,类型<>

如何在NodaTime中为Instant添加一年?

有没有办法使.NET 6应用程序在特定的.NET 6运行时版本上运行

Mongo作为.NET中Testcontainers的副本集

获取具有AutoFaces的所有IOptions对象的集合

如何注册类使用多级继承与接口

在不添加不必要的尾随零的情况下本地化浮点型?

如何在VS代码中为C#DotNet配置.json选项以调试内部终端的控制台应用程序

C#自定义验证属性未触发IsValid方法

对于PowerShell中的ConvertTo-SecureString方法,Microsoft如何将初始化向量添加到AES加密中的安全字符串?

.NET Google Workspace API获取错误CS0266

如何使用EPPlus C#在单个单元格中可视化显示多行文字

如何使用类似于[SELECT*FROM&Q;&Q;WHERE&Q;]SQL查询的System.Data.Entity创建查询?

DropDownListFor未显示选定值

如何对正方形格线进行对角分组

如何使用moq和xUnit对删除操作进行单元测试?

.NET6最小API:操作.MapGet之后的响应