自動注入機能は、コードをより単純かつ春に柔軟ジャワ行うので、C#の、実装プロセスのステップの分析によって、次のステップに移植でそれを取ります
1.自動注入シーン解析
asp.netのMVCでは、関係なく、どのようなコードの論理階層、コントローラ層のための最終的なプレゼンテーション層であるので、我々注入点は、我々は、コードマークが行いを注入する必要がスキャンし、デフォルトのターゲット・ControllerFactoryを交換する必要がコントローラでありますインプラントの例
FastControllerFactoryは、当社のカスタムコントローラーの工場で、AutoWiredこの引数定義された注釈、ビーンコンテナの割り当てから取った例をマーキングするCreateControllerメソッドをオーバーライドし、我々はまた、デフォルトを作り、グローバルなファイルにStartメソッドを必要とします植物の交換
2.IOCコンテナを達成
C#のカスタム・コンテナは、軽量バージョンである私たちが実現を所有するなどAutoFac、成熟オープンソースのフレームワークをたくさん持っています
送信元アドレス:https://gitee.com/grassprogramming/FastIOC
、マークがコンポーネントと呼ばれ、マークを噴射する必要があり、我々はBeanオブジェクトに必要なすべての最初の、私たちはasp.netのMVCを使用する方法について、ここで焦点となってみよう
Startメソッドのasp.net MVCグローバルなファイルでは、我々は自動的に容器ビーンに注入するプロジェクト全体を必要とします
ここではコントローラーレベルの事項には完了している、あなたはさらに処理IOCコンテナBeanインスタンスメソッドを初期化する必要があります
でGetInstance Beanオブジェクトは、メソッドのコアは非常に単純でインスタンス化することで注意すべき2つの点があり、そのうちの反射を介してオブジェクトを作成することです
フィールドを注入する必要がなくなるまで1)内部のネストされたオブジェクトの依存性注入がある場合、可変ビーンビーン初期のすべての時間をスキャンする必要、再帰を使用することが必要です
2)私は、ここで使用される再帰的にスキャンした場合、Bクラスのテスト中に依存性注入は、クラスBの依存性の注入、作成の従来のプロセスが実行されてもよいように、シングルモードの実施形態であるだろう対象が循環参照を避けるために、注入される再度スキャン直接使用取られている場合、メモリのループ、オーバーフローに、単一の対象の実施形態の使用は、それが、辞書に作成されています
3.その他
他のに使用されていないコントローラのクラスは、直接使用IOC豆から容器を除去する必要がある、注射依拠します