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 に答える