我开始在我的项目中使用 Ninject,以自动绑定抽象类的所有子类。对此的绑定是——既好又简单——如下:
kernel.Bind(x => x.FromThisAssembly()
.SelectAllClasses().
.InheritedFrom<AbstractGenerator>()
.BindBase());
但是,我发现这不起作用。经过一些实验,我发现这不起作用的原因是我所有的实现(和抽象类)都被标记为internal。
我可以想象这是一些安全功能,以防止绑定将内部泄漏到外部。但我可以为这些类添加显式绑定。因此,我的问题是:有人知道这是否是预期行为吗?除了公开我的所有课程之外,有什么方法可以解决这个问题吗?