DIで混乱します。私はDIがコンストラクタを使用して実装できると説明した多くの記事を見てきました。だから、私は鼻血の使用を理解することができません。 ninjectがそこになければ、コードも機能します。あなたは何がninjectを使用する利点を説明してください。DIを使ってDI
Q
DIを使ってDI
-1
A
答えて
3
Ninjectは、私はちょうど 疎結合の基本的な原理に従うことによって行うことができないことを私のために提供し使用しない何
Darin Dimitrov
を引用?
- のコードの
- 少ないラインなどの古典的なWebフォームなどの特定の状況で、注射用
- 多くのプラグイン、ASP.NET MVC、ASP.NETのWeb API あなたのオブジェクトの寿命を処理するための標準コンテナ 自動的にIDisposableをは
- オブジェクト処分する
- 可能性...
Composition Root
あなたは翔すべてのものそれ以外の場合は手動で処理してください。これは、DIフレームワークはほとんど重要ではないと言われています。速く、アプリケーションに必要な特定の機能を提供する必要があります。しかし、DIフレームワークは、あなたのコードとアプリケーションのさまざまなレイヤーを疎結合の方法(インターフェイスと抽象クラスをプログラミングしてアプリケーションの異なるレイヤー間の結合を弱める)で設計する方法に絶対に影響を与えません。
したがって、DIフレームワークは、アプリケーションのComposition Rootにのみ介入するものであり、別のフレームワークで目を瞬きさせて置き換えたり、オブジェクトのライフタイムを手動で処理したりするフレームワークとして考えることができます。
たとえば、質問に表示されたコードは、レイヤを特定のDIフレームワークに結びつけるため、非常に悪いものです。この[Inject]
の属性は癌のようです。これは、アプリケーションコードが特定のDIフレームワークに依存していることを意味します。
また、私はあなたがこれを読むことをお勧めしますbook。
関連する問題
- 1. DI
- 2. サービスファブリックリモーティングサービスプロキシDI
- 3. PHP-DI
- 4. Mobicents Di
- 5. DIを使用したSQLDependency
- 6. DI外部DLLの使用
- 7. Autofac DI inステートメントの使用
- 8. サブコンポーネントのDIエラー
- 9. Playframework 2.5スリック+ DI
- 10. PhalconカスタムDI
- 11. Angular2 DI Debug
- 12. コンストラクタのテンプレートリファクタリングDI
- 13. Javascript IoC/DIフレームワーク
- 14. DIコンテナのサービスロケータ
- 15. スプリングDI?インターフェイスタイプ?
- 16. Laravel DIは
- 17. ASP.NETコアDI
- 18. Interface by IoC/DI
- 19. DIとIOC例
- 20. マルチレベルのDIリファクタリング
- 21. [ブースト] .DIデコレータパターン
- 22. dotnetcore DIワールドでヘルパーを使って作業する
- 23. asp.net mvc _ViewStart DIフック
- 24. DIコンストラクタ注入ニートネス
- 25. Unity DIの設定
- 26. DI NG-ブートストラップ・エラーと
- 27. なぜここDI
- 28. DIコンテナはこの
- 29. ASP.NET CORE DIのモデル
- 30. SeemannのDI Azureテーブルデータアクセス
[この本の第2版](https://www.manning.com/seemann2/)は現在製作中であり、第3章はすぐにリリースされる予定です。 – Steven