有人可以指出如何使用 Ninject 创建自定义“Inject”属性的方向吗?
我想做以下事情:
- InjectView - 自定义“注入”属性
当要注入具有此属性的属性时,将从“ViewManager”类加载注入的值。
我找到了一个使用 ISelector 的示例来决定是否要注入属性/字段,但是我不知道如何为此添加自定义“注入策略”-我想将实际值的注入委托给我的视图管理器。
有人可以指出如何使用 Ninject 创建自定义“Inject”属性的方向吗?
我想做以下事情:
当要注入具有此属性的属性时,将从“ViewManager”类加载注入的值。
我找到了一个使用 ISelector 的示例来决定是否要注入属性/字段,但是我不知道如何为此添加自定义“注入策略”-我想将实际值的注入委托给我的视图管理器。
它已经得到支持,可以通过简单的内核配置来完成。
new StandardKernel(new NinjectSettings() { InjectAttribute = typeof(MyOwnInjectAttribute) };
我通过添加一个自定义 IInjectionHeuristic 解决了这个问题,它允许通过我的自定义属性进行注入。然后我还添加了一个自定义 IBindingResolver,它为每个已解析的类型添加了一个附加绑定 - 此绑定对自定义属性进行条件检查,因此它不会破坏任何先前的绑定...
自定义 IBindingResolver 创建的绑定设置一个本地“ProviderCallback”,它利用提取的属性并将请求传递给内部 ViewRegionManager 实例。
希望这对将来有人想做类似的事情有所帮助。