有人可以指点我如何使用Ninject创建自定义“Inject”属性吗?
我想做以下事情:
当要注入具有此属性的属性时,将从“ViewManager”类加载注入的值。
我找到一个ISelector的例子来决定是否要注入属性/字段,但是我无法找到如何为此添加自定义“注入策略” - 我想委托注入实际我的ViewManager的值。
答案 0 :(得分:4)
它已经得到支持,可以通过内核的简单配置来完成。
new StandardKernel(new NinjectSettings() { InjectAttribute = typeof(MyOwnInjectAttribute) };
答案 1 :(得分:3)
我通过添加自定义IInjectionHeuristic解决了这个问题,它允许通过我的自定义属性进行注入。然后我还添加了一个自定义IBindingResolver,它为每个被解析的类型添加了一个额外的绑定 - 这个绑定有一个条件检查自定义属性,这样它就不会破坏任何以前的绑定......
自定义IBindingResolver创建的Tha绑定设置本地“ProviderCallback”,它使用提取的属性并将请求传递给内部ViewRegionManager实例。
希望这有助于以后有人想要做类似的事情。