dependency-injection 相关问题

一种设计模式,通过动态地向软件组件中注入需要运行的依赖项来减少组件之间的耦合。

Blazor 组件 @inject 在客户端项目 program.cs 文件中注册依赖项时不起作用

我创建了一个非常简单的 Blazor 应用程序,其中有 BlazorTestApp 和 BlazorTestApp.Client。我想在 BlazortestApp.Client>Pages>Counter.razor 中注入 HttpClient。 以下是

回答 1 投票 0

将同一服务类的多个单例添加到.NET 8中的依赖注入

我需要像这样向 DI 添加同一类的多个实例 程序.cs 使用 PruebaWorkerService1; var builder = Host.CreateApplicationBuilder(args); builder.Services.AddHostedService 我需要像这样向 DI 添加同一类的多个实例 程序.cs using PruebaWorkerService1; var builder = Host.CreateApplicationBuilder(args); builder.Services.AddHostedService<Worker>( x => new Worker("worker1")); builder.Services.AddHostedService<Worker>(x => new Worker("worker2")); builder.Services.AddHostedService<Worker>(x => new Worker("worker3")); var host = builder.Build(); host.Run(); Worker.cs namespace PruebaWorkerService1; public class Worker : BackgroundService{ private readonly string _msg; public Worker(string msg){ this._msg = msg; } protected override async Task ExecuteAsync(CancellationToken stoppingToken){ while (!stoppingToken. IsCancellationRequested){ Console.WriteLine(("Worker running at: {time} {msg}", DateTimeOffset.Now, _msg)); await Task.Delay(1000, stoppingToken); } } 结果: 结果 仅实例化了 Worker1。我认为使用不同的参数(消息)它会创建不同的实例。我需要做什么才能创建多个服务实例? AddHostedService只会添加类型的第一个服务,后续注册将被忽略(内部使用TryAddEnumerable)。您有以下选择: 根据设置添加后代类型并注册它,而不是Worker 使用黑客方法通过描述符进行手动注册: builder.Services.Add(ServiceDescriptor.Singleton<IHostedService>(_ => new Worker("worker1"))); builder.Services.Add(ServiceDescriptor.Singleton<IHostedService>(_ => new Worker("worker2"))); builder.Services.Add(ServiceDescriptor.Singleton<IHostedService>(_ => new Worker("worker3"))); 处理工作线程中的设置,例如根据设置创建一个线程/任务并在ExecuteAsync中运行它们(例如查看这个答案)

回答 1 投票 0

将同一服务类的多个单例添加到Net8中的依赖注入

我需要像这样向 DI 添加同一类的多个实例 程序.cs 使用 PruebaWorkerService1; var builder = Host.CreateApplicationBuilder(args); builder.Services.AddHostedService<...

回答 1 投票 0

.NET Core 依赖注入 -> 获取接口的所有实现

我有一个名为 IRule 的接口和多个实现该接口的类。我想使用.NET Core依赖注入容器来加载IRule的所有实现,所以所有实现...

回答 3 投票 0

将文档注入到SSR的角度服务中

我正在创建一个角度库,它有一个引用文档的根级服务类。我想添加 SSR 支持,但当然文档没有在 SSR 上下文中定义。看来是角

回答 1 投票 0

IOptionsMonitor 与 IOptionsSnapshot 之间的区别

根据这个答案,IOptionsMonitor在DI容器中注册为单例,并且能够通过OnChange事件订阅检测更改。它有一个 CurrentValue 属性。 关于...

回答 4 投票 0

C# Autofac 通用接口解析为基类实例而不是子类

首先,我的代码的一些背景知识。 我有一个可以通过数据存储/存储库类型服务保存/使用的项目的界面: 公共接口 IItem { 引导 ID { 获取;放; } } 公共接口...

回答 1 投票 0

如何使用 GetIt 包在 Dart/Flutter 中实现装饰器模式

我最近遇到了一个在 Flutter 项目中实现装饰器模式的小挑战。 我的项目使用 get_it 包来实现服务定位器。我们没有找到直接/

回答 1 投票 0

无法从 Java 代码注入 Kotlin 依赖组件

使用最新版本的Dagger 2, 实施 'com.google.dagger:dagger:2.51.1' 注释处理器'com.google.dagger:dagger-compiler:2.51.1' kapt "com.google.dagger:dagger-

回答 1 投票 0


需要基于密钥使用同一接口获取多个客户端

我有一个下面的 DI,它会给我两个不同的数据库客户端。 _ = 服务.AddSingleton(x => { var dbFactory = new DbFactory(x.GetRequiredService...

回答 1 投票 0

AuthorizationOptions 的依赖注入

我正在为我的 ASP.NET 5 MVC 应用程序创建授权规则/策略。创建它非常简单并且非常容易做到,并且它正在工作(通过我的基本测试)。然而,我现在需要...

回答 2 投票 0

如何使用 ILogger 为 azure 函数(Httptrigger)编写单元测试

想要为 HttpTrigger GET 编写单元测试。 方法签名如下: 公共静态异步任务运行( [HttpTrigger(AuthorizationLevel.Function, "get", 路由 = ...

回答 3 投票 0

Nest 无法解析 MailService 的依赖关系(?)

我创建了一个邮件模块,用于处理发送电子邮件,但设置后,当我尝试启动应用程序时,我不断收到错误消息: Nest 无法解析

回答 1 投票 0

如何知道哪些代码正在注入我的 DI 服务?

在 C# 中,具有典型的依赖注入服务设置。我注册了自己的定制服务并且运行良好。但是,我发现它有时会被调用(注入),这是我没有预料到的。所以我...

回答 1 投票 0

应该避免使用 IHttpContextAccessor 吗?将用户信息获取到 DI 服务中

有很多关于使用 IHttpContextAccessor 在 DI 服务中注入用户信息的信息。不过,该界面上有一条警告,建议谨慎使用。

回答 1 投票 0

使用类作为依赖项的正确方法是什么(参数检查)?

这里的主要目标是映射 UI 发送的参数以匹配我的数据库表。 现在你可以说我疯了,但是前一秒还可以,现在不行了。 我这里有几个类和一个函数(在 S_Sorting 中) c...

回答 1 投票 0

Slim依赖容器的正确使用方法

根据http://www.slimframework.com/docs/tutorial/first-app.html,首先创建slim对象,然后获取容器并向其添加服务。 $app = new \Slim\App(["设置...

回答 1 投票 0

将 viewModel 注入@Composable

我的 ProfileScreen 有 viewModel。 @可组合 有趣的个人资料屏幕(){ val viewModel: ProfileViewModel = viewModel() ... } 每次我调用 ProfileScreen 时,都会创建新的 viewModel....

回答 4 投票 0

在 .NET Core 中注入 DynamoDBContext 实例的最佳方法

目前正在为我的班级开发一个 Web 服务项目,并决定使用 .NET Core 和 DynamodDB 制作一个 Web API。 我只是好奇注入 DynamoDBContext 的最佳方法是什么? 我

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.