Ninject自定义注入属性

时间:2010-11-12 21:05:28

标签: attributes ninject inject

有人可以指点我如何使用Ninject创建自定义“Inject”属性吗?

我想做以下事情:

  • InjectView - 自定义“注入”属性

当要注入具有此属性的属性时,将从“ViewManager”类加载注入的值。

我找到一个ISelector的例子来决定是否要注入属性/字段,但是我无法找到如何为此添加自定义“注入策略” - 我想委托注入实际我的ViewManager的值。

2 个答案:

答案 0 :(得分:4)

它已经得到支持,可以通过内核的简单配置来完成。

new StandardKernel(new NinjectSettings() { InjectAttribute = typeof(MyOwnInjectAttribute) };

答案 1 :(得分:3)

我通过添加自定义IInjectionHeuristic解决了这个问题,它允许通过我的自定义属性进行注入。然后我还添加了一个自定义IBindingResolver,它为每个被解析的类型添加了一个额外的绑定 - 这个绑定有一个条件检查自定义属性,这样它就不会破坏任何以前的绑定......

自定义IBindingResolver创建的Tha绑定设置本地“ProviderCallback”,它使用提取的属性并将请求传递给内部ViewRegionManager实例。

希望这有助于以后有人想要做类似的事情。