问题标签 [servicecollection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1358 浏览

asp.net-core - 什么是 ObjectPoolProvider 以及为什么 asp.net 核心 IServiceCollection 默认注入了这个

我注意到设置新的 asp.net 核心应用程序的 ServiceCollection 默认情况下具有由框架注入的 Microsoft.Extensions.ObjectPool.ObjectPoolProvider 。为什么会这样,更重要的是我们应该什么时候使用它以及如何使用它。

对此进行谷歌搜索没有结果,我可以在 docs.microsoft.com 上找到的文档仅描述了该类型,没有其他任何内容。

0 投票
0 回答
1068 浏览

c# - 在运行时 .net 核心中从控制器注册服务

在我的项目中,我正在加载一些 dll 程序集,这些程序集包含控制器以及需要在我们的 DI 容器中注入的服务。

我尝试使用默认的 dotnet core DI 或 Autofac 寻找解决方案,但没有任何结果。

我知道这不是在运行时更新 DI 的好习惯,但我希望我能找到一个好的解决方案。

我有另一种方法,但它将服务保存在配置文件中,并且需要重新启动应用程序以加载配置以开始注册服务。

我的代码示例

0 投票
1 回答
798 浏览

c# - 使用 XUnit Mediatr 和 IServiceCollection 进行依赖注入

目前,我能够处理 IServiceCollection 以通过以下方式为特定服务注入模拟。

对于以下测试对象

该测试运行良好,并且在命令处理程序中使用了 unitOfWork 和 logger 模拟。

我试图移动它,以便 IServiceCollection 构造发生在每个类而不是每个测试中,使用以下内容:

不幸的是,使用这种方法,我的模拟不会被注入命令处理程序。有没有办法让它工作?

谢谢,

0 投票
2 回答
613 浏览

c# - 选项模式 - 接口/抽象属性

我想将以下对象与ServiceCollection中的appsettings.json数据绑定,但是我无法更改类或接口的设计:

这是我在appsettings.json中的数据

这是我对服务提供商的配置:

这是我得到错误的部分

无法创建“IConnectionInfo”类型的实例,因为它要么是抽象的,要么是接口

0 投票
1 回答
299 浏览

c# - C# 服务集合将类型添加为对象而不是其实际类型

我的代码有点问题。

基本上,我正在尝试将通过反序列化 JSON 创建的类动态添加到我的 ServiceCollection 中,这样我就可以从任何需要它们的类中获取它们。到目前为止,我有以下代码:

我们将 JSON 加载到一个类中(有效),然后将其添加到我们的集合中(有效);当添加到我们的集合中时,类型是一个对象,所以当我尝试通过 调用它时Services.GetServices(typeof(BotConfiguration)).ToList().Count);,它返回 0。什么给出了?

好吧,如果我们改为尝试 run Services.GetServices(typeof(object)).ToList().ForEach(x => Console.WriteLine(x.ToString()));,我们实际上可以看到这个实例化实际上属于对象类型,即使当我们运行 x.ToString() 时,它表明它是 BotConfiguration 的一个实例(输出 Dexter.Core.Configurations. BotConfiguration 在我的例子中)。

我们如何让我们的 ServiceCollection 将其添加为它的实际类而不是对象?它清楚地知道它是什么类型……?

0 投票
0 回答
345 浏览

c# - 创建了一个新的ServiceCollection,添加了服务,但是GetService返回null

我创建了一个新的 servicecollection 对象并添加了一个服务。但是,当我构建服务提供者并尝试获取服务时,它返回 null。下面的例子。

该示例使用数据上下文,但它发生在任何服务中。此代码正在控制器方法中进行测试。

等效代码在实现 IDesignTimeDbContextFactory 的类的 CreateDbContext 中工作。如果这有助于回答。

0 投票
1 回答
61 浏览

fallback - FallbackAsync 方法停止 REST 调用

这是调解员电话

这个 MyClient Post 方法被非常频繁地调用。例如,在给定的一秒内,有 7 个呼叫正在进行。并且每秒钟有 7 个在继续。

应用程序工作正常,直到 Post 方法返回“HttpStatusCode.Forbidden”。当它返回 Forbidden 时,一些下一个调用不会到达 REST 端点。

这是由于某些连接不可用吗?例如:由于“fobidden”状态和 polly 后备策略而丢失的连接很少?(因为最大限制是 10)?

或者这是由于 Async 及其时间安排使得当第二批呼叫进来时连接仍在使用中?

提前致谢

0 投票
1 回答
124 浏览

c# - ServiceCollection IOptions<> 无法正确绑定

我正在尝试绑定一些可配置的设置。这些值是通过 app-settings.local.json 提供的。要绑定的模型称为可配置设置。我尝试遵循一些教程并解决问题:

  1. https://andrewlock.net/how-to-use-the-ioptions-pattern-for-configuration-in-asp-net-core-rc2/
  2. https://github.com/aspnet/Configuration/issues/411
  3. 无法从 .NET Core 项目中的 JSON appsettings 文件设置配置
  4. 即使 GetSection 正在工作,ServiceCollection 也会为 IOptions 返回 null

我试图遵循此处给出的建议并将其应用到我自己的应用程序中。经过 4 小时的尝试,我无法让它工作。要么我缺乏实现这一点所需的基本知识,要么我忽略了一些东西。

我的 ConfigurableSettings 类的结构如下:

我的 ConfigureServices 结构如下:

我的 app-settings.local.json 配置如下:

当我尝试在类中使用它时,我在构造函数中调用它,如下所示:

有人可以帮我找出我做错了什么吗?

0 投票
0 回答
35 浏览

c# - 在 IServiceCollection 中配置 CORS 设置后,我可以读取 .NET 5 中的 CORS 设置吗?

我根据此处的示例配置我的 CORS 设置:https ://stackoverflow.com/a/65039768/10069673

我想编写一个单元测试来验证 CORS 是否配置正确。IsOriginAllowed是一个私有函数,因此我不能在单元测试中直接调用它。

我可以使用IServiceCollection接口的对象或模拟来检查先前配置的 CORS 设置是否允许/阻止 URI?

0 投票
0 回答
24 浏览

.net-core - 有没有更好的方法在 Startup 类的 ConfigureServices 方法中注入所有依赖项

而这样的例子不胜枚举....

有没有更好的方法来解决这种依赖关系,而不是像这样为每个服务编写代码。是否有任何其他方式,例如从程序集中读取或使用反射来解决这些依赖关系。这样,如果我有 300 个接口,我必须编写 300 行来解决依赖关系。