我有一个类需要在它的类中使用IRepository作为一个方法.
理想情况下,我想避免将此依赖关系解析为类的构造函数,因此我在Ninject中找到了方法级注入,并想知道这是如何工作的?
我理解如何设置它.我很困惑的是如何称呼它?
例:
class SomeClassThatUsesRepository
{
[Inject]
public void QueryForSomeStuff(IRepository repository)
{
//do some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在不指定IRepository的情况下调用此方法?
var someClass = Kernel.Resolve<SomeClassThatUsesRepository>();
Run Code Online (Sandbox Code Playgroud)
如果我使用构造函数会工作,但我想调用一个方法.
如何使用Ninject方法注入调用方法?
NOt*_*Dev 13
我担心方法注入不会以这种方式工作 - 它只是在构造过程中将依赖项注入对象的方法之一(您可以通过构造函数参数,通过属性,字段或方法注入依赖项).如果您的类通过Java样式的setter方法获取其依赖项,则方法注入很有用
public void SetRepository(IRepository repository) { ... }
Run Code Online (Sandbox Code Playgroud)
如果用[Inject]属性标记,则不需要直接调用此方法,在初始化期间由Ninject调用它以将IRepository对象传递到已解析的对象中.
所以我相信你的QueryForSomeStuff方法是在你恢复你的时候被调用的SomeClassThatUsesRepository.
| 归档时间: |
|
| 查看次数: |
7625 次 |
| 最近记录: |