「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る --[[.NET Core における DI]] --[[ASP.NET Core]] > [[ASP.NET Coreへの移行]] * 目次 [#c961339d] #contents *概要 [#rb685d9d] [[参考>.NET Core における DI#pc1d5785]] *詳細 [#ec2347ad] **インジェクションの構成 [#i8e6b534] **構成 [#i8e6b534] [[参考>.NET Core における DI#qbc1fa8c]] ※ 詳しくは[[コチラ>#jec03fd1]]を参照。 **対象 [#zecaeea3] ***[[Startup>ASP.NET Coreへの移行#g42f0f08]] [#xa0350c3] -ConfigureServicesメソッドでの登録メソッドによりライフサイクルが変わってくる。 --AddSigleton : アプリケーションにて共有のシングルトンインスタンスを作成する。 --AddScoped : Webリクエストごとに新しいインスタンスを作成する。 --AddTransient : Dependencyが要求されるごとに新しいインスタンスを作成する。 -Configureメソッドには、ConfigureServicesメソッドで登録したサービスが、~ IApplicationBuilderや引数を経由で渡されるので、これを使用して構成する。 ***Controller [#q1ed58f9] -Constructorインジェクション~ MVCのControllerは、constructorを使用しサービスを挿入する。 -Actionインジェクション~ Action methodのパラメタとしてサービスを挿入することもできる。 -参考 --コントローラーへの依存関係の挿入~ https://docs.microsoft.com/ja-jp/aspnet/core/mvc/controllers/dependency-injection ***View [#h7d59b85] -Viewインジェクション --@inject [サービスの型] [変数名] --Modelプロパティ風(@model ViewModelのクラス型) >に書く。 -参考 --ビューへの依存関係の挿入 | Microsoft Docs~ https://docs.microsoft.com/ja-jp/aspnet/core/mvc/views/dependency-injection **コンテナを変更する。 [#wf1daf74] ASP.NET Coreでは、 -既定では、Microsoft.Extensions.DependencyInjectionを使用する。 -ConfigureServices メソッドが、IServiceProvider を返すようにシグネチャを変更する方法で、~ [[Autofac>#vd7b0259]] (Autofac.Extensions.DependencyInjection)など、別のコンテナに切替可能らしい。 *参考 [#f9f43786] **Microsoft Docs [#f49f72b7] -ASP.NET Core での依存関係の挿入~ https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/dependency-injection -ASP.NET Core でのアプリケーションのスタートアップ~ https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/startup **Qiita [#t0d72606] -.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 **時が癒す [#jec03fd1] ASP.NET Core MVC のDIコンテナを利用する -Part.0(準備編)~ http://mrgchr.hatenablog.com/entry/2016/10/21/000000 -Part.1~ http://mrgchr.hatenablog.com/entry/2016/10/22/000000 -Part.2~ http://mrgchr.hatenablog.com/entry/2016/10/23/000000 **Autofac [#vd7b0259] -AutofacというDIコンテナを触ってみた - かずきのBlog@hatena~ http://blog.okazuki.jp/entry/2014/02/26/232829 -Qiita --Autofac について調べてみた ---その1 インスタンスのスコープ~ https://qiita.com/TsuyoshiUshio@github/items/f4d83c76520a86c028dc ---その2 インスタンスのスコープ補足~ https://qiita.com/TsuyoshiUshio@github/items/066e6feae4b4f7c1e0b8 ---その3 WebApi とのインテグレーション~ https://qiita.com/TsuyoshiUshio@github/items/f4d83c76520a86c028dc --ASP.NET Coreアプリの~ Dependency Injection処理を別のDIコンテナに委譲する(完全版)~ https://qiita.com/yamaokunousausa/items/bc81d8498ecf62da0208 --ASP.NET CoreでIServiceProviderに登録される情報を確認する~ https://qiita.com/yamaokunousausa/items/0d5450ff6b50ebe7129e --ASP.NET Coreで設定ファイルによるDIの設定を行い~ 環境によって使用されるコンポーネントを変更する~ https://qiita.com/yamaokunousausa/items/bd5ee2d0af79aa55923d ---- Tags: [[:プログラミング]], [[:.NET開発]], [[:.NET Core]], [[:ASP.NET]], [[:ASP.NET MVC]]