/ / Как да конфигурираме Unity в n-tier ASP .net MVC приложение - asp.net-mvc, ioc-container

Как да конфигурираме Unity в n-tier ASP .net MVC приложение - asp.net-mvc, ioc-container

Имам малък проблем да разбера как да конфигурирам Unity IoC контейнер в моето n-tier ASP .net MVC приложение.

Имам 3 проекта в моето решение: 1. MVC (Използва се като изглед): Има само референция към слоя бизнес логика 2. Business Logic Layer: Има само справка за проект за хранилище 3. Резистори: нямат препратка към нито един от горепосочените проекти

Моля, обърнете внимание на начина, по който работя моята референтна работа, го направих така, така че ще мога да заменя комуникацията между моите нива, използвайки WCF с по-малко затруднения.

Имам конфигуриран контейнер на Unity в моето приложение за MVC, като правя нещо подобно (Global.asax):

container.RegisterType (); // MyService е в моя бизнес логически слой

Класът MyService използва моето хранилище в своя конструктор, което означава, че когато се създаде един от тези класове MyService, се изисква и MyRepository:

публичен MyService (хранилище за хранилища): база (хранилище) {}

Както можете да видите, все още не съм конфигурирал IRepository в моя контейнер.

Не искам да го правя в моя Global.asax, защото не искам да добавям позоваване на Repository към MVC (View).

Къде е най-доброто място за конфигуриране на това? Аз съм объркан тук ...

Благодаря предварително.

Отговори:

2 за отговор № 1

Опитвали ли сте: http://mvcunity.codeplex.com/


1 за отговор № 2

Позволете ми да ви разкажа какво направих досега:

Създадох статичен клас в моята услуга иПо-късно създавам контейнера Unity в моя View Layer (MVC) и го предавам на тези статични класове, които напълват контейнера с това, от което се нуждаят, плюс следващия слой, например слоят за обслужване също така се обажда на статичния клас в моето хранилище.

По този начин конфигурирам контейнера с всичко, от което се нуждая.

Въпросът е: дали това ли е добре да се направи?


0 за отговор № 3

Ако използваме Единство. можем да приложим разширение на контейнера за Unity в средния слой и да се регистрираме в слоя за презентация, както е показано по-долу.

          //Data Layer dependency mapping as extension eg : IUnitOfWork
container.AddNewExtension<DependencyInjectionExtension>();

Повече подробности, моля, следвайте статията.

N-ниво с DI (Unity)

Благодаря