私はMVCコントローラとWebApiコントローラの両方を同じプロジェクトに持っています。私はサービスとロガーをそのコンストラクタを通してコントローラに注入したいと思います。 DependencyResolver
は拡張性の適切なポイントですか? MVCコントローラとWebApiコントローラの両方で同じサービスとロガーを共有することはできますか?私はIoCコンテナとしてUnityを使用します。MVC5とWebApi2コントローラで適切なDependency Injectionを行うための一般的なフックアップポイントは何ですか?
0
A
答えて
3
WebAPIとMVCは完全に独立したフレームワークです。それぞれはDIをサポートしており、(またはSystem.Web.Mvc.IControllerFactory
)とSystem.Web.Http.IDependencyResolver
の両方を実装した場合、同じプロジェクトで動作するように設計されています。composition root
一般に、ほとんどの主要なDIコンテナには、統合をやや容易にするNuGetパッケージがありますが、使用するコンテナのドキュメントを参照する必要があります。
Here is an article Unityをどのように統合するかについて詳しく説明しています。 Unity.WebApi
およびUnity.Mvc5
パッケージをインストールし、次のように構成を追加します。
using Microsoft.Practices.Unity;
using System.Web.Http;
using System.Web.Mvc;
namespace WebApplication1
{
public static class UnityConfig
{
public static void RegisterComponents()
{
var container = new UnityContainer();
// register all your components with the container here
// it is NOT necessary to register your controllers
// e.g. container.RegisterType<ITestService, TestService>();
DependencyResolver.SetResolver(new Unity.Mvc5.UnityDependencyResolver(container));
GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);
}
}
}
関連する問題
- 1. Reactコンポーネントでリダイレクトを行うための適切なライフサイクルステージは何ですか?
- 2. 最適化/移動を一般的な場所で行う
- 3. JSONデータサイズを減らすための一般的な手順は何ですか?
- 4. Railsは、一般的な私のコントローラでは、コントローラのメソッド
- 5. デリゲートを置くための一般的な場所は何ですか?
- 6. Kohana/PHPでDependency Injectionを実行するための良いオプションは何ですか?
- 7. laravelの有能なコントローラのための一般的なCURDをどのようにgreateするのですか?
- 8. 一般的なシナリオとエンドユーザーレポートの設計は何ですか?
- 9. UICollectionViewControllerのための適切なMVVMアーキテクチャは何ですか
- 10. Laravel - 一般的なエラー:1366不適切な整数値
- 11. 一般的な3Dゲームパターンとは何ですか?
- 12. 一般的なember.jsオープンソースプロジェクトとは何ですか?
- 13. Aurelia Dependency Injectionの容器は何ですか
- 14. VaadinとDependency Injection Frameworks
- 15. GameCenter認証を行う適切な方法は何ですか?
- 16. ModelForm検証を行う適切な場所は何ですか?
- 17. クラスのメタ面を扱うための適切なインターフェースは何ですか?
- 18. 棒グラフ軸の適切な一般的計算
- 19. djangoのクラスベースの一般的なビューのユースケースは何ですか
- 20. パイプラインの一般的なパイプラインの危険性は何ですか?
- 21. Pythonのenumの一般的なプラクティスは何ですか?
- 22. 一般的なWebブラウザのアドレスバーの動作は何ですか?
- 23. 一般的なコントローラ(GUIベースのアプリケーション)のためのエレガントな方法
- 24. Javascriptブックマークレットの一般的なデザインパターンは何ですか?
- 25. RAIIクラスの一般的な命名規則は何ですか?
- 26. ビットアレーの一般的な用途は何ですか?
- 27. Akka Microkernelの一般的な使用例は何ですか?
- 28. 最も一般的なCSSのプラクティスは何ですか?
- 29. apacheの一般的な設定は何ですか
- 30. 最も一般的なCSSの問題は何ですか?
はい、MVCとWeb APIの間でサービスを共有できます。 – Win
何を試しましたか?ただそれのために行く。あなたが問題に遭遇した場合、私たちはそれらを手伝うことができますが、このような質問をすると、私たちがあなたに与える唯一の合理的な答えは "はい"です。 –