dependency-injection 相关问题

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

在 NestJS 中注入依赖项的正确方法

我是NestJS的新手,也不熟悉DI。我正在使用 NestJS 构建一个简单的 API。当每个模块只有 1 个数据库连接依赖项时,一切都很好。但是当我将服务注入另一个服务时...

回答 1 投票 0

在 Fragment 和 Activity 之外通过 Hilt 进行字段注入

我想知道是否可以在片段或活动之外使用字段注入?我知道我可以使用构造函数注入,但是我想知道是否也可以使用字段注入。我

回答 2 投票 0

如何注销AddHttpClient<ISendGridClient, SendGridClient>();

我正在使用 WebApplicationFactory 进行端到端测试,并且需要让我的测试主机应用程序取消注册以下内容 services.AddHttpClient(); 那我就去

回答 1 投票 0

如何在 Android 中使用 Hilt 在基类中进行字段注入

我有一个基本场景,其中基类需要注入 Logger 类。我收到 kotlin.UninitializedPropertyAccessException: Lateinit 属性记录器尚未初始化...

回答 2 投票 0

如何将 Blazor NavigationManager 注入到我为 razor 页面创建子类的抽象类中

我在 Chat GPT 上来回了 10 多次,陷入了 CS7036 错误的无限循环中。我有一个 Blazor 项目,在其中创建了一个自定义抽象页面类 MyPage 子类 ComponentBase...

回答 1 投票 0

有人可以解释一下Microsoft Unity吗?

我一直在阅读MSDN上有关Unity(依赖注入、控制反转)的文章,但我认为我需要用简单的术语(或简单的示例)来解释它。我很熟悉 MVC 模式...

回答 6 投票 0

Spring 容器如何引用我们作为方法参数传递的接口或类类型?

我一直在研究 spring 和 spring mvc 框架,我很好奇 spring 容器如何为我们提供对我们作为参数传递给我们的

回答 2 投票 0

Symfony 从容器中获取服务而无需 DI

我目前正在处理捆绑包(symfony 版本:6.4)中的命令,其中我需要获取服务的实例,而无法注入服务。我只有

回答 1 投票 0

如何使用工厂模式进行依赖注入和输入参数?

我试图了解如何使用工厂模式和依赖注入(Microsoft.Extensions)在运行时使用一些输入配置创建服务实例(例如,ITransport)。

回答 1 投票 0

如何在@FacesConverter中注入@EJB、@PersistenceContext、@Inject、@Autowired等?

如何在 @FacesConverter 中注入 @EJB、@PersistenceContext、@Inject、@AutoWired 等依赖项?在我的具体情况下,我需要通过 @EJB 注入 EJB: @FacesConverter 公开课

回答 6 投票 0

通过依赖注入提供的对象的多个实例

假设我有一项发送电子邮件的服务。该类还需要 DI 来获取设置并添加记录器。这是一个简单的实现: 公共接口 IEmailService { 公共字符串来自 { ...

回答 1 投票 0

使用nestjs节流器时,我似乎无法导入正确的测试模块来运行单元测试

我目前在尝试使用nestjs/throttler时遇到以下错误, Nest 无法解析 MyThrottlerGuard(?、Symbol(ThrottleStorage)、Reflector)的依赖项。请确保...

回答 1 投票 0

为什么 DI 容器会两次处置作用域服务?

服务: 公共接口 IMessageWriter { 无效写入(字符串消息); } 公共类 ConsoleMessageWriter:IMessageWriter, IDisposable { 公共无效处置...

回答 1 投票 0

有没有办法从所有多个级别使用 Angular 多提供程序?

我想知道是否有可能从(理想情况下)所有祖先那里获得角度多提供者。 假设我有一个 INJECTION_TOKEN X 并且我有一个如下所示的组件结构: 我想知道是否有可能从(理想情况下)所有祖先那里获得角度多提供者。 假设我有一个 INJECTION_TOKEN X 并且我有一个像这样的组件结构: <comp-a> <comp-b> <comp-c></comp-c> <comp-b> <comp-a> comp-a提供商: providers: {provide: X, useValue: "A", multi: true} comp-b提供商: providers: {provide: X, useValue: "B", multi: true} 当我使用依赖注入时,有没有办法在 ["A", "B"] 中获取 comp-c,例如: constructor(@Inject(X) obtainedArray:TypeOfX[]) { console.log(obtainedArray.length); //Expected to be 2 } 我尝试在 comp-b 中使用此提供程序,但它引发了循环 DI 期望: providers:[ {provide: X, useExisting: X, multi: true} {provide: X, useValue: "B", multi: true} ] 正如以下文章所述: 你一直想了解的关于 Angular 依赖注入树的知识 Angular 通过使用原型继承在元素上存储提供者。因此,无论您是否使用 multi,您都会得到以下对象,其中包含当前元素上的所有提供程序: 正如您所看到的,所有提供者都在这里,但由于 Angular 只是 使用方括号 从元素中获取提供者,您将只能获得最近的提供者。 要解决此问题,您可以使用使用工厂的附加令牌来收集所有父提供程序: import { Component, VERSION, InjectionToken, Inject, SkipSelf, Optional } from '@angular/core'; @Component({ selector: 'my-app', template: ` <comp-a> <comp-b> <comp-c></comp-c> </comp-b> </comp-a> ` }) export class AppComponent { } const X = new InjectionToken('X'); const XArray = new InjectionToken('XArray'); const XArrayProvider = { provide: XArray, useFactory: XFactory, deps: [X, [new SkipSelf(), new Optional(), XArray]] }; export function XFactory(x: any, arr: any[]) { return arr ? [x, ...arr] : [x]; } @Component({ selector: 'comp-a', template: `<ng-content></ng-content>`, providers: [ { provide: X, useValue: "A" }, XArrayProvider ] }) export class CompA { } @Component({ selector: 'comp-b', template: `<ng-content></ng-content>`, providers: [ { provide: X, useValue: "B" }, XArrayProvider ] }) export class CompB { } @Component({ selector: 'comp-c', template: `{{ tokens }}` }) export class CompC { constructor( @Inject(XArray) public tokens: any[]) { } } NG 运行示例 不,据我所知,您无法通过依赖注入做您想做的事情。当您在组件中提供某些内容时,它会自动隐藏具有相同令牌的先前提供者。这就是它的工作方式。 为了实现你所需要的,我能想到的唯一解决方案是将提供者作为inputs传递。 我的意思是,comp-a声明了一个提供者。 comp-b 也这样做,但接受包含提供者或提供者数组的 input。然后 comp-b 可以将自己的提供者添加到数组中并将其作为输入传递给 comp-c。 我不明白你到底为什么想要这个,但是......

回答 2 投票 0

我们应该如何在 IHostedService 中使用每个请求的 DbContext 实例?

请记住 .NET 依赖注入指南的建议: 避免使用服务定位器模式。例如,当您可以...时,不要调用 GetService 来获取服务实例

回答 1 投票 0

在 Net core 6 应用程序的 API 中访问服务层中的声明主体

我需要在 Net Core 6 应用程序的服务层中访问 ClaimsPrincipal。 我总是可以只 builder.Services.AddTransient();在 Startup.c...

回答 4 投票 0

Blazor 将辅助类注入其他类

这是使用 Blazor c#/html。 我正在参加一个助手课程: 公共类HelperClass { 公共 bool HelperClassBoolF { 获取;放; } 公共 bool HelperClassBoolT { 获取;放; } ...

回答 1 投票 0

使用 Uri 下载 blob 时出现错误“404 指定的 blob 不存在”

我尝试使用服务总线主题触发器 Azure 函数中的 blob url 下载 blob,但出现以下错误: 状态:404(指定的 blob 不存在。) 错误代码:BlobNotFound 内容: ...

回答 3 投票 0

Net MAUI 依赖注入不起作用

我尝试在 Net Maui 应用程序中配置依赖项注入。我遵循了一些在线教程,阅读了几个 stackoverflow 线程,但是似乎没有任何效果。经过相当数量的...

回答 1 投票 0

Azure 函数:在外部启动类中构建配置时出错

我正在使用依赖注入来加载Azure应用程序配置连接字符串及其使用DefaultAzureCredential的KV引用凭据。此配置适用于我们拥有的所有其他功能

回答 1 投票 0

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