2

私はMVCを初めて使用し、問題に悩まされました。私が見つけたすべての例は、APIコントローラーではなく、単純なコントローラーを参照しています。おそらく、Application_Start()で、Unityに依存関係を登録し、コードを微調整して、apicontrollerクラスが作成されると、適切な依存関係が渡されるようにする方法について、実用的なコード例があります。これが私のコントローラーの定義だとしましょう:

public class BookController : ApiController
{
    private IBookService bookSerivce;

    public BookController (IBookService bookSerivce)
    {
        this.bookSerivce= bookSerivce;
    }
}

そして、私はそれを次のように統一して登録することを期待しています:

UnityContainer container = new UnityContainer();

// Register services
container.RegisterType<IBookService , BookService>();

// Register controllers
container.RegisterType<IHttpController, BookController>("Books");

ここで、MVCが依存関係を解決するためにUnityを使用し、このコントローラーのインスタンスの作成を開始して依存関係を渡すために何をする必要がありますか?

私はMVC4を使用しています。どんなアイデアでもありがたいです。

乾杯

4

2 に答える 2

6

Mark Seemannは、WebAPIを使用した依存性注入に関する2つの投稿をしています。

ASP.NETWebAPIを使用した依存性注入とライフタイム管理

CastleWindsorを使用したASP.NETWebAPIでの依存性注入

Castle WindsorをUnityに置き換えると、サンプルはまったく同じように機能するはずです。

于 2012-11-05T06:22:17.853 に答える
1

WebAPIを使用しているようです。ASP.NETWebAPIでのUnity統合に関するこの投稿を確認してください。

Unity.WebAPINuGetパッケージの紹介

于 2012-11-05T06:13:53.457 に答える