1

有人可以指出如何使用 Ninject 创建自定义“Inject”属性的方向吗?

我想做以下事情:

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

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

我找到了一个使用 ISelector 的示例来决定是否要注入属性/字段,但是我不知道如何为此添加自定义“注入策略”-我想将实际值的注入委托给我的视图管理器。

4

2 回答 2

4

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

new StandardKernel(new NinjectSettings() { InjectAttribute = typeof(MyOwnInjectAttribute) };
于 2010-11-13T05:45:12.083 回答
3

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

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

希望这对将来有人想做类似的事情有所帮助。

于 2010-11-14T02:38:11.610 回答