「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る --[[DI]] --[[.NET Core]] > [[.NET Coreへの移行]] * 目次 [#c2aa1712] #contents *概要 [#pc1d5785] ミドルウェア /サービス / フレームワークの~ 差し替えを実現し、特定のフレームワークへの依存性を減らす。 -明示的な依存関係の原則~ [[constructor注入>DI#pf220003]]のDI方式を採用している。 -[[依存性反転原則>IoC#ob8c9a64]] --抽象化は依存関係をinterfaceに抽出することにより行われる。 --interface実装をパラメタとして提供するのも、戦略設計パターンの例。 *詳細 [#a98d6bd0] **インジェクションの構成 [#qbc1fa8c] **構成 [#qbc1fa8c] 以下のように、インジェクションを構成できる。 -Public constructor --1つのPublic constructor(複数のPublic constructorは例外) --依存関係の挿入によって提供されない引数は、既定値のサポートが必要。 -抽象化は依存関係をinterfaceに抽出 **対象 [#ge6ecacd] ***Program [#j1c6f9ce] *参考 [#de6ba022] **Microsoft Docs [#w780b4e8] -.NET での依存関係の挿入~ https://docs.microsoft.com/ja-jp/dotnet/core/extensions/dependency-injection **DevIQ > Posts [#f46e8c2e] ***Principles [#b439f757] -Inversion of Control~ http://deviq.com/inversion-of-control/ -Dependency Inversion Principle~ http://deviq.com/dependency-inversion-principle/ -Explicit Dependencies Principle~ http://deviq.com/explicit-dependencies-principle/ ***Patterns [#ed066e75] -Strategy Design Pattern~ http://deviq.com/strategy-design-pattern/ **Qiita [#la0039ee] -.NET 系の DI コンテナ~ https://qiita.com/okazuki/items/239ca5ef46e5a085e085 -DI (依存性注入) って何のためにするの~ かわからない人向けに頑張って説明してみる~ https://qiita.com/okazuki/items/a0f2fb0a63ca88340ff6 -DI って何でするのかわからない人向けに 頑張って説明してみる「本来の意味」~ https://qiita.com/okazuki/items/0c17a161a921847cd080 -DI コンテナは自分で new しないでフレームワークを探そう~ https://qiita.com/okazuki/items/6327d05fd84fd5de3299 -DIコンテナのテスト以外での利点について (7/15修正)~ https://qiita.com/crexista/items/606976d941728a90b42b -「DIコンテナのテスト以外での利点について」の自分の感想~ https://qiita.com/okazuki/items/a470e05c1a263921a59c ---- Tags: [[:プログラミング]], [[:.NET開発]], [[:.NET Core]], [[:ASP.NET]], [[:ASP.NET MVC]]