我正在尝试使用 MEF 将插件加载到 DI 框架中。有多种类型,例如:
ISocket
IBroadcastSocket
INodeTask
目前我已经以这种方式设置了我的代码:
[Import]
INodeTask NodeTaskPlugin { get; set; }
并尝试像这样导入插件:
Injector.Instance.Bind<typeof(INodeTask), NodeTaskPlugin.GetType()>();
尝试上述代码行时,R# 抱怨找不到正确的方法:
找不到方法组。您是否打算调用该方法?
这是Bind
我希望使用的声明:
void Bind<TBase, TDerived>() where TDerived : TBase
我的问题是两个方面:
- 如何解决上述错误?
- 有没有更有效的方式将插件导入 IoC 容器?