「[[マイクロソフト系技術情報 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]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS