Карта структуры - Как зарегистрировать определенные типы на определенных уровнях

Я использую пример Registry DSL для настройки карты структуры. Но это делает все мои зарегистрированные типы доступными на всех уровнях моего приложения, где я добавляю ссылку на карту структуры. Я не хочу, чтобы мой бизнес-уровень знал что-либо о моем уровне доступа к данным и наоборот. Как мне заставить карту структуры регистрировать только определенные типы для каждого из моих слоев?

Вот код в моем файле global.asax:

ObjectFactory.Initialize(x =>
{
  x.AddRegistry<RegistryIOC>();
});

А вот мой класс RegistryIOC:

public class RegistryIOC : SMRegistry
{

    public RegistryIOC() 
    {
        For<IProfileService>.Use<ProfileService>();
        For<IProctorService>().Use<ProctorService>();

        //Business Logic Objects
        For<IQual>().Use<Qual>();
        For<ITest>().Use<Test>();
        For<IBoldface>().Use<Boldface>();
        For<ITrainingPlan>().Use<TrainingPlan>();
        For<IUnit>().Use<Unit>();

        //Data Transfer Objects
        For<IGenericDTO>().Use<GenericDTO>();
        For<IProfileDTO>().Use<ProfileDTO>();
        For<IQualDTO>().Use<QualDTO>();
        For<IPermissionDTO>().Use<PermissionDTO>();

        //Repository Objects
        For<IProctorRepository>().Use<ProctorRepository>();
        For<IQualsRepository>().Use<QualsRepository>();
        For<ITestRepository>().Use<TestRepository>();
        For<IUnitRepository>().Use<UnitRepository>();
        For<IUserRepository>().Use<UserRepository>();
    }

}

Спасибо за помощь.

6
задан Colin Pear 4 November 2011 в 18:04
поделиться