在我的子类中,我在类的方法UnityBootstrapper
中注册了一个类型。ConfigureContainer()
对于这个问题,接口类型和实现类是无关的;它们存在并且可以解决。相关的是接口和类型是在包含我要加载的模块的同一个程序集中(我们称之为C )定义的。
我在程序集A和B中有另外两个模块。这些模块是由DirectoryModuleCatalog
引导程序中使用的InitializeModules()
方法找到的;程序集C的模块不是。
当我删除有问题的注册时,找到了C。当我将接口和目标类移动到另一个程序集并重新添加注册时,再次找到C。
当我将注册从引导程序移动到C模块的构造函数内部并使用 inject 在那里注册时,找到了模块,并且注册成功。IUnityContainer
因此,似乎注册顺序和位置以某种方式影响了模块加载,并且毫无例外地默默地这样做。现在我正在使用“在该模块的构造函数中从我的模块程序集中注册类型”方法,但这感觉像是一种解决方法。
这是“这样做的方法”吗?这是一个已知的限制或错误吗?