使用方法注入注入自定义参数

Injecting Custom Args using Method Injection

我是 Ninject 的新手。我已经看到可以使用

完成带有自定义参数的构造函数注入
Bind<>().To<>().WithConstructorArguments("Name","Value")

然后我想,尝试使用一些自定义参数的方法注入示例,如下所示:

[Inject]
public void DoSomething(int a,string data,double b, etc...)
{

}

但是,我一直在研究如何将数据传递给那些参数。

我检查了 intellisense 并看到了诸如 WithConstructorArgument、WithPropertyValue 等函数,所以我相信 should/may 是实现此功能的一个选项..

请问如何解决这个问题

提前致谢。

你不能那样使用方法注入。但是,您可以使用 OnActivation 扩展名,例如:

Bind<>().To<>()
    .OnActivation(x => x.DoSomething(5, "hello world", 3.5,...);    

它在 ninject 调用 ctor 并执行 属性 / 方法注入后执行。所以每个实例恰好一次。实际上,这应该正是您要寻找的。