私は、サービスとインターフェイスのバインディングのために、異なるプロジェクトのIWindsorContainer
とIUnityContainer
の間の2種類のコンテナで作業しました。しかし、私はかなり違いは何かを確認していないですか?彼らは同じ機能を持っていますか?そうであれば、既存のものについては別のものを開発する必要があります。あるいは、彼らにはいくつかの違いがありますか?はいの場合、それは何ですか?私はどちらを使いたいのですか?私はこの混乱に対して小さなdocumentationを持っていますが、私は静かにそれをキャッチしませんでした。あなたが私にそれを知らせたら、私は感謝します。ここではNHibernet
マッピングを使用しています。IWindsorContainerとIUnityContainerの違いは何ですか?
7
A
答えて
3
私は両方のコンテナを使用していて、それらの間に大きな違いがあり、何年もの間、UnityContainerはチームによって管理されており、まだ拡張されています。 Windsorコンテナは、実際のエラーを返す際にそれほど優れていませんでした。 UnityContainerには素晴らしいドキュメントがあり、Nugetや他のリポジトリマネージャを使用してインストールするのは非常に簡単です。
ここに私の言葉があります...コードの使用方法を見れば、例えばhttps://github.com/castleproject/Windsor/blob/master/docs/README.md、windsorは非常に難読化されています。
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Classes.FromThisAssembly()
.Where(Component.IsInSameNamespaceAs<King>())
.WithService.DefaultInterfaces()
.LifestyleTransient());
}
あなたが団結、https://github.com/unitycontainer/unity/blob/master/quickstarts/CS/EventBroker/Src/Stoplight/Program.csを見たい場合、それは別の方法でそれらを登録することで何が起こっているかがより明確になります。ウサギの穴を塞いでいるときのエラーコードも、Unityでもっときれいです。
IUnityContainer container = new UnityContainer()
.AddNewExtension<SimpleEventBrokerExtension>()
.RegisterType<ILogger, TraceLogger>()
.RegisterType<IStoplightTimer, RealTimeTimer>();
1
次のリンクを参照してください。これはあなたを助けるかもしれないhttps://visualstudiomagazine.com/articles/2014/09/25/refactor-5.aspx
関連する問題
- 1. プリズムのIContainerとIUnityContainerの違いは何ですか?
- 2. $と$$の違いは何ですか?
- 3. `##`と `hashCode`の違いは何ですか?
- 4. typedefとの違いは何ですか?
- 5. NodeJS:「./ ..」と「..」の違いは何ですか?
- 6. {}())と{})の違いは何ですか?
- 7. `&`と `ref`の違いは何ですか?
- 8. `==`と `is`の違いは何ですか?
- 9. difftimeと ' - 'の違いは何ですか?
- 10. #{} $ {}と%{}の違いは何ですか?
- 11. ⊕と+の違いは何ですか?
- 12. アペンダーと〜の違いは何ですか?
- 13. "./"と "../"の違いは何ですか?
- 14. "$^N"と "$ +"の違いは何ですか?
- 15. %Qと%{}の違いは何ですか?
- 16. バックスティックと$()の違いは何ですか?
- 17. A`と ``の違いは何ですか[:] `
- 18. パッケージのインポートobjと何かの違いをインポートパッケージとPythonの何かの違いは何ですか?
- 19. METADATAとMETADATA.jl:違いは何ですか?
- 20. twistdとnohup&:違いは何ですか?
- 21. libspeとlibspe2?違いは何ですか?
- 22. Backbone.jsとPusherapp - 違いは何ですか?
- 23. wp_link_pagesとthe_posts_pagination→違いは何ですか?
- 24. $ dirtyと$ invalid:違いは何ですか?
- 25. XPathの//と?/の違いは何ですか?の使用は何
- 26. フレームとオブジェクトの違いは何ですか?フレームとオブジェクトの違いは何ですか?
- 27. リストと何か([_])と何か(_)の違い
- 28. 違いは何ですか?
- 29. 違いは何ですか?
- 30. Javaではargsとargghとargvの違いは何ですか?
[Dependency injection container?それは何ですか?](http://stackoverflow.com/questions/8015101/dependency-injection-container-what-does-it-do) – NightOwl888
親愛なる@ NightOwl888、私は違いを知りたいと思います。その状況で私はあなたが私が尋ねたことを理解していないと思う。あなたがそこで提供した重複した回答で、私はこれについても見ている 'IUnityContainer'について' Windsor documentation'だけを議論しました。 –
DIコンテナを使用して(またはDIコンテナを全く使用せずに)、依存性注入パターンを実装することができます。しかし、同じアプリケーションで複数のものを使うのは間違いでしょう。依存性注入について知るには、[Dependency Injection in .NET](https://www.manning.com/books/dependency-injection-in-dot-net)を読むことをお勧めします。これは簡単なQ&A形式で議論するには広すぎるトピックです。 – NightOwl888