问题标签 [ninject-conventions]
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# - 我应该使用什么 Ninject 约定将所有以“I”开头的接口与具有相同名称的接口绑定,而 COMObj 没有“I”前缀?
我正在集成一个对象是 COM 对象的会计系统。
当如下一对一绑定时,它工作得很好。
我遇到的情况是IAcoSDKX
和AcoSDKX
都是接口,AcoSDKClass
消费者无法访问。
所以我正在寻找一种将两个接口绑定在一起的方法,因为它们的拼写不同。Ont 以“I”开头,而其他则没有。所以我想提出一个传统的绑定,即使我一直使用未绑定的接口,Ninject 也知道在通过构造函数注入激活对象时将其绑定到什么。
这是我到目前为止没有成功的尝试。
所以我想知道,如何使用 Ninject 配置一个可以满足实际需要的约定绑定?
基本上,约定是将所有以“I”开头的接口与具有相同名称但没有“I”前缀的接口绑定。
编辑
经过进一步搜索,我发现AcoSDK.dll的类型嵌入到我自己的程序集中。只有提前加载的类型是可绑定的。
此外,虽然我可以新建一个 COM 对象接口,但Activator.CreateInstance不会以它是一个接口为借口对其进行初始化。请参阅对象声明如下:
鉴于这些新信息,是否有人对 COM 对象有类似的体验?我试图以AcoSDKClass
任何方式更新或访问它,但我似乎没有得到它的钩子。
c# - Ninject 只是不会注册 MediatR.IRequestHandler<,> 使用基于约定的绑定?
按照以下示例:
我有一个 MediatorModule 类,如下所示:
在 Quick Watch over 上services.FromThisAssembly().SelectAllClasses().InheritedFrom(typeof(IRequestHandler<,>))
,我可以看到正确找到了这些类。
这是我的命令和处理程序的示例。
所以我想知道如何不使用该BindAllInterfaces
方法注册处理程序?
即使使用普通的旧绑定语法,请求处理程序也不会被注册。
我错过了什么?