0

次のチュートリアルを進めています。私はパートにいます

IUnityContainer BuildUnityContainer()
{
    var container = new UnityContainer();

    container.RegisterType<IStoreService, StoreService>();
    container.RegisterType<IController, StoreController>("Store");        

    return container;
}

私が持っている質問は、複数のコントローラーをどのように行うのですか? たとえば、Store、Music、および Owner コントローラーがあり、それぞれに独自の I[Name]Service がある場合

4

4 に答える 4

2

The new Unity 3 provides an integration point for MVC 4 out of the box. All the details on how to use it are here: http://msdn.microsoft.com/en-us/library/dn178463(v=pandp.30).aspx#sec17

You can also combine this with the registration by convention feature to register all your mappings like IFoo -> Foo: http://msdn.microsoft.com/en-us/library/dn178463(v=pandp.30).aspx#sec23

Regarding controllers, you do not need to register them explicitly in Unity, because if you ask Unity to resolve an instance of a concrete type that was not previously registered, it will build one up (injecting the dependencies using the longest constructor). MVC will ask Unity using the concrete types of the controllers, so they will work automatically.

于 2013-06-05T20:50:37.473 に答える
1

それぞれを同じ方法で登録する必要があります。または、リフレクションを使用してすべての可能な型を取得し、それらをループ内に登録できるロジックを作成する必要がある場合があります。

于 2013-06-05T08:24:51.313 に答える
0

http://weblogs.asp.net/shijuvarghese/archive/2008/10/24/asp-net-mvc-tip-dependency-injection-with-unity-application-block.aspxをご覧ください。

ステップ 3 には、コントローラーに依存関係を注入するためのコードが含まれています。また、ステップ 4 の次のコードも含めます。

ControllerBuilder.Current.SetControllerFactory(new myFinance.Web.Controllers.UnityControllerFactory(container));
于 2013-06-07T16:15:39.677 に答える