dependency-injection 相关问题

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

功能从构造函数注入更改为inject()函数

我的项目中有以下守卫: 从 '@angular/common' 导入 { isPlatformServer } ; 从 '@angular/core' 导入 { 注入,可注入,可选,PLATFORM_ID }; @Injectable() 出口类

回答 1 投票 0

如何使用 DI 在类构造函数中获取 Microsoft.AspNet.Http.HttpContext 实例

我正在 MVC 6 中构建一个一次性应用程序,并尝试不同的依赖架构。 我面临的问题是如何创建特定于...的自定义“MyAppContext”对象

回答 4 投票 0

依赖注入和使用 Googlemock 进行模拟的实际示例

我正在寻找一个简单的完整剪切和粘贴示例,用于依赖注入和使用 Googlemock 进行模拟。我发现了一些关于代码片段问题的理论讨论,例如......

回答 2 投票 0

在ASP.NET Core中运行BackgroundService时出现问题

我正在使用 ASP.NET Core 和 SignalR 开发一个简单的游戏。我在添加后台服务来管理队列状态并打印队列中的用户数量时遇到了一些问题。我有这个...

回答 1 投票 0

使用 Symfony 检查控制器内是否处于“dev”模式

在 Symfony2.x 应用程序中使用开发模式时,通常在语言环境中工作。因此,此类功能无法按预期工作(例如,尝试获取 localhost 下的当前 IP)。这可能...

回答 10 投票 0

如何在NestJS 9(TypeORM 3.+)中扩展TypeORM存储库

以前,TypeORM 存储库可以扩展并直接注入到服务中,例如: 从'./entities/user.entity'导入{用户}; 从 'typeorm' 导入 { EntityRepository, Repository }; @

回答 4 投票 0

Fastapi - 运行具有请求之外的依赖项的函数

我的代码依赖于两个函数,第二个函数也依赖于第一个函数。 def get_db() -> Iterable[sessionmaker]: db = SessionLocal() 尝试: 产量数据库 最后: ...

回答 1 投票 0

NullPointerException:无法调用“org.modelmapper.ModelMapper.map(Object,java.lang.Class)”,因为“this.modelMapper”为空

我有一个地图绘制器 @成分 公共类 DTOmapper { 私有最终 ModelMapper modelMapper; 公共 DTOmapper(ModelMapper modelMapper) { this.modelMapper = modelMapper; } 你...

回答 1 投票 0

GetRequiredService 和 AddHttpClient 冻结 .NET 控制台应用程序(堆栈溢出)

在我的 .NET Core 控制台应用程序中,此行冻结: services.GetRequiredService(); 在下面的代码中: 接口 ISomething { } Cool 类:ISomething { 公共酷(

回答 1 投票 0

.Net Maui 自定义服务的依赖注入问题

我正在尝试使用以下示例在我的 .Net MUI 8 应用程序中实现 Firebase Crashlytics: https://dev.to/vhugogarcia/firebase-crashlytics-in-net-maui-57jp 但是,我遇到了问题

回答 1 投票 0

将 DI 与具有基类的类一起使用

我仍在尝试了解 C# 以及 DI 如何与基类一起工作。这是我的例子。 我有一个类设置,所有类都带有一个设置初始配置的基类。我……

回答 1 投票 0

解析需要 HttpClient 和字符串的服务

我有以下课程: 类 MyService(HttpClient 客户端,字符串随便) { } 现在我想在控制台应用程序中使用 .NET DI 容器创建此类的实例: HostApplicationBui...

回答 1 投票 0

更改注入的HttpClient的BaseUrl

我目前正在开发 .NET MAUI 应用程序,我正在使用 DI 来处理 HttpClient 并与我的后端进行通信。 在设置中,用户可以更改后端的 URL,但显然,...

回答 1 投票 0

为什么实体框架说对象附加到不同的ObjectContext对象?

我有一个在 .Net 4.7.2 上运行的 Webforms 应用程序,在某些情况下,从已在模式窗口中实例化的 UI 中调用以下代码,而在其他情况下......

回答 1 投票 0

在xunit中实例化IOptions<>

我正在尝试为一个类(在 .net Core 项目中)编写一个 xunit 测试,如下所示: 公共类FoodStore:IFoodStore { FoodList 食品项目; 公共食品商店(IOptions 我正在尝试为一个类(在 .net Core 项目中)编写一个 xunit 测试,如下所示: public Class FoodStore:IFoodStore { FoodList foodItems; public FoodStore(IOptions<FoodList> foodItems) { this.foodItems = foodItems; } public bool IsFoodItemPresentInList(string foodItemId) { //Logic to search from Food List } }` 注意:FoodList实际上是一个json文件,包含数据,在Startup类中加载和配置。 如何编写具有适当依赖注入的 xunit 测试来测试 IsFoodItemPresentInList 方法? 您可以使用 IOptions<FoodList> 方法创建 Options.Create 的实例: var foodListOptions = Options.Create(new FoodList()); 您可以使用 OptionsWrapper<T> 类来伪造您的配置。然后您可以将此对象传递给您要测试的类。这样你就不必使用 DI 或读取真实配置。 类似这样的: var myConfiguration = new OptionsWrapper<MyConfiguration>(new MyConfiguration { SomeConfig = "SomeValue" }); var yourClass = new YourClass(myConfiguration); 我遇到了类似的问题(使用xUnit),经过一番努力,我解决了。 答案这么晚了,但应该对其他人有帮助。 对于你的问题: public Class FoodStoreTest { private readonly IConfigurationRoot _configuration; private readonly IServiceProvider _serviceProvider; public FoodStoreTest(){ // read Json var configBuilder = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables(); _configuration = configBuilder.Build(); // SetUp DI var services = new ServiceCollection(); services.AddOptions(); // this statement is required if you wanna use IOption Pattern. services.Configure<YuntongxunOptions>(_configuration.GetSection("yuntongxun")); _serviceProvider = services.BuildServiceProvider(); } [Fact] public void GetFootItemOption() { IOption<FoodList> optionAccessor = _serviceProvider.GetService<IOptions<FoodList>>(); FoodList footListOptions = optionAccessor.value; Assert.NotNull(footListOptions) // ... } } 此外,您应该将“appSettings.json”复制到项目根文件夹。 在单元测试中,您通常不使用依赖注入,因为是您控制测试对象的创建。 要提供实现 IOptions<FoodList> 的合适对象,您可以自己实现具有所需行为的伪类,或者使用一些模拟框架动态配置实例,例如 Moq。 正如其他答案所建议的,在您的测试类中,您可以创建一个仅用于测试的选项实例。 你可以这样做; public class FakeFoodList : IOptions<FoodList> { public FoodList Value { get { return new FoodList(); // TODO: Add your settings for test here. } } } 然后这样称呼它; var foodOptions = new FakeFoodList(); var foodStore = new FoodStore(foodOptions); var response = foodStore.Act(); Assert.Equal("whatever", response); 您可以执行以下操作: private Mock<IOptions<SomeSettings>> _someSettings; 并且在测试方法中: `_someSettings = 新模拟(); _someSettings.Setup(o => o.Value).Returns(new SomeSettings { ClientId = "723jsisksokskskos", ClientSecret = "sjhs;~jspkasjd;asdj;asdpqwoepqwe", ConnectionStrings = new List<ConnectionStrings> { new ConnectionStrings { Acronym = "A1" }, new ConnectionStrings { Acronym = "A2" } } }); ` 模型结构: `公共类 SomeSettings : ISomeSettings { public const string ConfigurationName = nameof(SomeSettings); public string ClientId { get; set; } public string ClientSecret { get; set; } public string QueryCount { get; set; } public List<ConnectionStrings> ConnectionStrings { get; set; } }`

回答 6 投票 0

C# - 更改注入的 HttpClient 的 BaseUrl

我目前正在开发 .NET MAUI 应用程序,我正在使用 DI 来处理 HttpClient 并与我的后端进行通信。 在设置中,用户可以更改后端的URL,但显然...

回答 1 投票 0

.NET 依赖注入中的动态实现选择

对于一个接口,我有两种不同的实现,我需要在依赖注入中注册它们,并且我需要有条件地检查在给定时刻要实例化哪个实现。 我

回答 1 投票 0

如何在 ASp .NET 7 中使用 AddApplication?我有“IServiceCollection”不包含“AddApplication”的定义错误

Program.cs有问题 使用 ProjectDash.Application; 使用 ProjectDash.Application.Common.Mappings; 使用 ProjectDash.Domain.Interfaces; 使用 ProjectDash.Persistence; 使用系统。

回答 1 投票 0

Blazor/Razor 使用依赖注入解析组件

我需要类似于依赖注入的方法来解析 Blazor/Razor 组件。 也就是说,我想以与 DI / IoC 允许我们完全相同的方式解耦 Razor 类库中的组件

回答 1 投票 0

为.Net Core中的静态类提供配置

我很好奇可以采取什么方法来解决以下问题。 我在 WPF 应用程序中使用 Properties.Settings.Default 来存储一些配置。我突然想到它应该...

回答 2 投票 0

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