Использование StructureMap для добавления реестров в 2 сборки - PullRequest
0 голосов
/ 04 декабря 2011

В моем проекте ASP.NET MVC у меня есть 2 проекта - UI и Core. Я настроил StructureMap в своем проекте Core следующим образом:

ObjectFactory.Initialize(cfg => cfg.Scan(scanner =>
{
    scanner.TheCallingAssembly();
    scanner.LookForRegistries();
}));

и у меня есть настроенный реестр, который позволяет мне использовать IoC в моих репозиториях:

public class CoreRegistry : Registry
{
    public CoreRegistry()
    {
        Scan(cfg =>
        {
            cfg.TheCallingAssembly();
            cfg.WithDefaultConventions();
        });
    }
}

Я инициализирую это в global.asax. Вся эта конфигурация в Core находится в «черном ящике», и все отлично работает.

Однако теперь я хотел бы использовать StructureMap для IoC в своем проекте пользовательского интерфейса. Можно ли добавить больше в конфигурацию после того, как она уже настроена? Я не хотел бы распутывать все, чтобы мои элементы пользовательского интерфейса регистрировались.

1 Ответ

0 голосов
/ 04 декабря 2011

Вы можете использовать ту же стратегию для регистрации объектов пользовательского интерфейса.Вы можете отправить ссылку на сборку пользовательского интерфейса в метод, который ищет регистры в Core dll.И отсканируйте сборку пользовательского интерфейса на наличие регистров:

ObjectFactory.Initialize(cfg => cfg.Scan(scanner =>
{
    scanner.TheCallingAssembly();
    scanner.Assembly(assembly);
    scanner.LookForRegistries();
}));

И чем вы можете, как обычно, объявить реестры в проекте пользовательского интерфейса.Также вы можете добавить любое количество реестров в любое время.

...