MVC 3では、カスタムWebViewPagesを作成できることを理解しています。コンストラクタインジェクションを使用してIOCコンテナを介して依存関係を注入できますか?IOCコンテナを使用して、カスタムWebViewPageのコンストラクタに依存関係を注入できますか?
答えて
ブラッド・ウィルソンのブログ記事でビュー注射用expample http://bradwilson.typepad.com/blog/2010/07/service-location-pt3-views.html
ビューはコンストラクタ・インジェクションは完全に正確ではないことを許可し、他のステートメントがあります。はいIDependencyResolver
は、コンストラクター引数を持つビューの作成を可能にします。しかし、独自のビューエンジンを実装していない限り、これはまったく役に立たないでしょう。カミソリのような既存のビューエンジンでは、パラメータのないコンストラクタが必要です。つまり、それらのビューでプロパティインジェクションだけを行うことができます。
しかし、他の人が言ったように、あなたはビューインジェクションをとにかくすべきではありません。ビューはダムにして、ビューモデルをHTMLにレンダリングするだけです。依存関係を必要とするものは、コントローラまたはサービスで行う必要があります。
はい、可能ですが、実際にはそれは良い考えではないと思います。ビューレベルで「サービス」が必要なのはなぜですか?キーMVCガイドライン - を覚えています。ビューはダムでなければなりません。実際、ビューモデルオブジェクトをHTMLに変換するためのテンプレートにすぎません。
コンストラクタ注射を行うことはできません。
public abstract class CustomViewBase<TModel> : WebViewPage<TModel> where TModel : class { [Inject] public IFace Face { get; set; } }
そして、あなたはあなたが正しく@Faceプロパティが初期化されている必要がありますGlobal.asaxの中IDependencyResolverを設定していると仮定すると:しかし、あなたはNinject、たとえば、このような何かを行うことができます。 重要な注意点:_Layout.cshtmlの@Faceにアクセスすることはできません。(Brad Wilsonによると)LayoutはMVCの外で動作し、レイアウトページで@Faceがnullになるためです。
いずれにしても、複雑なロジックを扱う必要がないという点で私は他の人に同意します。
これは素晴らしいです!私はあなたがNinjectでそれを行うことができるとは気づきませんでした。 –
Ninjectである必要はありません。オートファックと他の人たちはデコレータを使わずに同じことをするでしょう。 –
継承されたページでうまくいきました。しかし、MVCのレイアウト(masterpage)内の同じ注入されたクラスメソッドにアクセスするためのソリューションは何ですか? –
- 1. UnityをIoCとして使用するコンストラクタ依存性注入
- 2. LISPの依存性注入(とIoCコンテナに関する)のポイント
- 3. IOC - 複数の依存関係の注入
- 4. ASMX依存注入とIoC
- 5. Zend DiとServiceManagerの依存関係注入コンテナ
- 6. スプリング3依存性注入(IOC)注釈
- 7. Angular2で依存関係注入を正しく使うには?
- 8. taglibクラスへの依存関係を注入しますか?
- 9. Ninjectを使用してWPFに依存関係を注入する
- 10. 依存関係注入のコンストラクタでサービスとリーフオブジェクトを混在させるか?
- 11. ASP.NET 5依存関係注入、パラメータ付き注入
- 12. Sinatraアプリケーションの依存関係の注入
- 13. 依存関係注入を使ってポストシャープからログ依存関係を解決する方法
- 14. Laravelの依存性の注入/ IOC
- 15. 依存性注入コンテナ
- 16. 依存関係注入による循環依存関係の解決
- 17. Windsorコンテナを使用してAsp.net MVC 4 Web APIコントローラに依存関係を挿入できません
- 18. 依存関係注入とASP.Netメンバーシッププロバイダ
- 19. コアデータオブジェクト注入(依存関係あり)ストーリーボード
- 20. C#クラスライブラリプロジェクト依存関係注入ブートストラップ
- 21. autowired依存関係の注入に失敗しました。
- 22. spring boot:autowired依存関係の注入に失敗しました。
- 23. コントローラに依存関係を注入すると、スコープに依存関係が追加されますか?
- 24. 依存性注入を使用した依存性注入器の注入
- 25. Protobufに外部依存関係を注入していますか?
- 26. Silverlightでカスタム依存関係プロパティをアニメートできますか?
- 27. 依存関係で注入されたコンテナからオブジェクトを取得しますか?
- 28. PHPコンストラクタの引数が利用できないときの依存関係の注入
- 29. autowired依存関係の注入が失敗しました
- 30. カスタムResourceProviderFactory依存性注入
ビューのプロパティとして使用できるようにするカスタム権限があればどうなりますか? (必要な権限なしで剃刀でレンダリングすべきでない部分を指定する) –