以前のプロジェクトでCastleWindsorを使用していて、とても気に入りました。現在のプロジェクトでは、別のIoCコンテナを使用することを検討しています。Castle Windsorは、2007年以降、新しいリリースがなく、バージョン1.0でもないため、商用環境で使用することを正当化することは困難です。
Castle Windsorについて私が気に入っていることの1つは、サービスを実装するだけで、すべての依存関係が設定された後、コンテナーにサービスのInitializeメソッドを呼び出させることができることですIInitializable
。私はこれをよく使いました。コンストラクターインジェクションの代わりにプロパティインジェクションを簡単に実行できるようになり、コードとテストがかなりクリーンアップされます。
代わりにStructureMap、AutoFac、Unity、Spring.Netを見てきましたが、これらのうちSpring.Netだけが同様のものをサポートしており、自動的にInit()
メソッドを呼び出します。残念ながら、Spring.Netは、IoCコンテナーを操作する方法を実際にはサポートしていません(インターフェイス宣言ではなく文字列キーに基づいて挿入するため、自動配線のサポートも制限されています)
私が見たIoCコンテナの同様の機能を見逃しましたか?IoCコンテナの操作方法はどういうわけか間違っていますか?または、IInitializableやInit()のようなものをサポートする他のIoCコンテナはありますか?