问题标签 [open-generics]
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# - 如何在 LightInject 中注册一个接受参数的开放泛型?
我有以下通用类,这取决于IBar
:
理想情况下,我会在LightInject中使用类似的东西注册它:
这样在运行时,我就可以使用提供的值获取 IFoo 的实例:
但是由于使用了开放的泛型,这段代码显然无法编译IFoo<>
:
如果只有 Foo 不是通用类,那么根据官方文档,这一切都可以正常工作:https ://www.lightinject.net/#parameters 。
有通用类的解决方案吗?这可以用任何其他方式编写并且仍然可以实现相同的目标吗?我尝试使用以下语法,但我失去了使用接受值的委托的能力(或者至少我不知道该怎么做)......
任何想法?
c# - 如何在 Dot Net Core 中实现 Open Generic Constructor Injection
我有一个审计日志接口:
现在在主 AppDbContext 界面中,我将其继承为:
在主 AppDbContext 类中,我继承为:
问题是,在依赖注入时,我试图像这样注入它:
我也尝试了其他方法,但无法获得成功 - 我收到的一些错误消息是:
错误信息:
- Message=提供的泛型参数的数量不等于泛型类型定义的数量。
- 无法实例化实现类型“Common.Application.Interfaces。IAuditDbContext
2[T1,T2]' for service type 'Common.Application.Interfaces.IAppDBContext
2[T1,T2]'
请求帮助以正确实施它。
c# - 向接口注册 IRequest
我正在尝试执行以下操作:
我的 Autofac 配置如下:
当我执行请求时:
我收到以下错误:
System.InvalidOperationException:'找不到处理程序类型为 MediatR.IRequestHandler`2[ExampleQuery[ExampleClass1],ExampleClass1] 的请求。向容器注册您的处理程序。
我了解运行时无法找到具有提供的类的处理程序,因为它尚未正确注册。我想要实现的目标真的可能吗?我缺少 Autofac 配置中的任何内容吗?
c# - 使用 Microsoft DI 在泛型类型的构造函数中注入原始类型
我正在尝试使用依赖注入来添加具有构造函数参数的通用服务。我需要实现这个,一般来说:
这就是我使用开放泛型所做的工作:
我无法使用 opengenerics 添加构造函数参数。这是我要添加 DI 的类: