问题标签 [scrutor]
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.
c# - 从注入 DI 的 IHttpClientFactory 获取名称 HttpClient
在 Blazor 中,我设置了两个 HttpClient。一个用于我的 API,一个用于 MS Graph API。Graph API 是新的,迫使我找到一种方法将命名的 httpclient 注入到我的服务中。
这是 Main 中的所有代码
这是必须更改的代码。它扫描了我所有的服务并注入了一个 HttpClient。因为我现在有两个,所以我随机注入了一个客户端。如何将命名客户端注入我的所有服务?我可以将图形 API 服务作为一种特殊情况来处理。
调用我的 API 的服务示例
好的,最终在我的所有服务中将 HttpClient 替换为 IHttpClientFactory
c# - 使用 Scrutor 自动进行依赖注入
我的项目中有很多服务,并尝试使用Scrutor进行自动 DI,而不是在 startup.cs 上手动注册每个服务
酒吧服务.cs
IBar.cs
酒吧.cs
酒吧控制器.cs
添加services.AddScoped<IBar, BarService>();到 Startup.cs 可以正常工作,但不能使用 Scrutor 来自动映射。
我收到错误
asp.net-core - 在 Scrutor 中多次使用 AddClasses
我正在尝试使用 Scrutor 来简化 asp.net core 3.1 应用程序中的 DI 注册,如下所示
不幸的是,第二种AddClasses()覆盖了第一种。无论如何,我可以同时使用这两种约定来检测类吗?
c# - 如何在 ASP.NET Core 中自动配置服务?
我想更改我的 Startup 类以扫描系统中所有实现接口的类,然后自动注册它们。我使用 Scrutor 只是为了让生活更轻松。
通常,使用类似下面的代码很容易实现:
我的问题是我不能用选项模式做到这一点。
我的创业公司通常有这样的事情:
这允许我将类注入到这样的构造函数中:
有没有办法(使用 Scrutor 会很好,但我愿意接受其他建议)来注册我所有的选项类。我可以通过命名约定或用空界面装饰它们来轻松地在代码库中识别它们。我的问题是我不知道如何使用扫描的类调用“services.Configure()”。
我正在有效地寻找实现这一目标的某种方法:
.net - 向 Scrutor 注册依赖
我有3个项目
1 带控制器
2 应用服务
3 带接口
我写了界面
然后在应用服务中实现
然后我在第一个项目中从控制器调用它,就像这样
我像这样通过 Scrutor 在启动时注册接口
并得到这个错误
System.InvalidOperationException:尝试激活“CheckoutAPI.Controllers.CustomersController”时无法解析“TestTaskShared.Interfaces.ICheckoutAppService”类型的服务。
我该如何解决这个问题?
dependency-injection - 有没有办法通过 .NET 依赖注入有条件地将类型注册为后备?
ICommand我们目前使用 SimpleInjector 作为我们的 DI 容器,通过使用andIQuery<TResult>和ICommandHandler<TCommand>andIQueryHandler<TQuery, TResult>接口来实现命令-查询-分离 (CQS) 模式。
我们还使用装饰器模式来执行面向方面的编程。对于我们的装饰器之一,我们使用 FluentValidation 来执行特定命令或查询的验证逻辑。
使用 SimpleInjector,可以有条件地注册类型。当我们有一个没有相应验证器的命令或查询时,这对我们的 FluentValidation 装饰器很有用。然后我们使用 aNullValidator<T>作为后备,它什么都不做。正是在SimpleInjector 文档中描述了这种场景,对于 FluentValidation 场景看起来像这样:
NullValidator<T>是必需的,因为总是应用装饰器并且总是IValidator<T>注入 a 。对于不存在的特定验证器,NullValidator<T>使用 。这是命令的 FluentValidation 装饰器的构造函数:
这工作得很好,但现在我们正在评估删除对 SimpleInjector 的依赖,并结合使用 .NET 依赖注入 ( IServiceCollectionfrom Microsoft.Extensions.DependencyInjection) 和Scrutor来注册我们的ICommandHandler<T>和IQueryHandler<TQuery, TResult>实现以及我们的装饰器。
有没有办法在 .NET DI 框架中执行类似的条件注册逻辑或后备机制,如 SimpleInjector 支持?
c# - 使用 Scrutor 注册具有子接口类型的服务
我有以下接口:
我有一些实现第一个和第二个验证器的服务。
在使用Scrutor之前,我手动注册了服务,一切都按预期工作:
我可以为我的其他服务注入一个特定的验证器:
但是,当我尝试使用 Scrutor 自动注册(以第一个验证器为例)时:
注入类型为父验证器(即IValidator),具体实现的注入数组留空。
如何实现自动注册为特定接口作为类型?
c# - 让 Scrutor 扫描执行程序集
我发现/在我的一个程序集中添加了 scrutor 来测试它。我评论了原始注册并添加了扫描语句:
但它似乎什么也没做。在调试期间,它立即说服务未注册。所以我显然错过了一些东西。当我调试和查看服务时,我也看不到任何添加的服务。
