Sve*_*ann 1 c# ninject ninject-extensions
我开始在我的项目中使用Ninject来自动绑定抽象类的所有子类.对此的绑定是 - 简单易行 - 如下:
kernel.Bind(x => x.FromThisAssembly()
.SelectAllClasses().
.InheritedFrom<AbstractGenerator>()
.BindBase());
Run Code Online (Sandbox Code Playgroud)
但是,我发现这不起作用.经过一些实验,我发现这不起作用的原因是我的所有实现(和抽象类)都标记为内部.
我可以想象这是一些安全功能,以防止绑定从内部泄漏到外部.但我可以为这些类添加显式绑定.因此,我的问题是:有人知道这是否是预期的行为?有没有办法解决这个问题,除了让我的所有课程都公开?
放在.IncludingNonPublicTypes()前面.SelectAllClasses(),你的绑定也适用于内部类.
另请参阅此问题:无法使Ninject.Extensions.Conventions工作
我不认为这是关于安全的.我想这是关于设计而言可能与性能有关:仅从公共类型中选择比从所有类型中选择花费更少的时间.
| 归档时间: |
|
| 查看次数: |
837 次 |
| 最近记录: |