我使用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;没有注册。
另一方面,我确信所有依赖项都被正确引用(检查路径和类名称)。
提前致谢。