Castle.Windsor无法从外部DLL中注入依赖项

时间:2014-12-04 15:24:15

标签: castle-windsor ioc-container

我使用Windsor Castle作为IoC工具。现在,我可以轻松地将依赖项注入目标类。然而,我尝试做(并且无法做)是注入单个或多个依赖项,这些依赖项是通过反射加载的外部DLL的一部分,但是当我调用Container的Resolve方法时,它会抛出以下异常:

  

无法创建组件' ClassLibrary3.MainClass'因为它有依赖性来满足。

以下是我正在使用的代码

var assembly = Assembly.LoadFile(assemblyFullPath);
var type = assembly.GetType(fullyQualifiedClassName);
var container = new WindsorContainer();
container.Register(Component.For(type));

var dependecyInterfaceAssembly = Assembly.LoadFile("<SomePath>\\ClassLibrary3.dll");
var dependecyInterfaceType = dependecyInterfaceAssembly.GetType("ClassLibrary3.IDependency3");
var dependecyImplementationAssembly = Assembly.LoadFile("<SomePath>\\ClassLibrary3.dll");
var dependecyImplementationType = dependecyImplementationAssembly.GetType("ClassLibrary3.Dependency3");
container.Register(Component.For(dependecyInterfaceType).ImplementedBy(dependecyImplementationType));

return (IJob) container.Resolve(type);

所以容器调用它正在抛出异常的Resolve函数

  

无法创建组件&#39; ClassLibrary3.MainClass&#39;因为它有依赖性来满足。

     

&#39; ClassLibrary3.MainClass&#39;正在等待以下依赖项:    - 服务&#39; ClassLibrary3.IDependency3&#39;没有注册。

另一方面,我确信所有依赖项都被正确引用(检查路径和类名称)。

提前致谢。

0 个答案:

没有答案