Призма и круговая зависимость - PullRequest
1 голос
/ 03 февраля 2011

У меня есть призматические модули, которые зависят от услуг, предлагаемых другими.Есть ли способ представить взаимозависимость безопасным способом?Я думал о том, чтобы объединить их в один модуль, но они действительно не объединяются.

Кстати, я знаю, MEF может это сделать;Я знаю, MEF - это круто!Я люблю MEF.Я не могу переключиться на эту технологию, потому что она потребует обновления среды и IDE, которые я не могу себе позволить (по времени).

Если у вас возникли те же проблемы, что и у меня, то посмотрите MEF .Это поздно для меня;спаси себя!

Ответы [ 2 ]

3 голосов
/ 03 февраля 2011

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

По какой причине это невозможно?

0 голосов
/ 03 февраля 2011

Я понял, что делать. Служба тайм-аута не нужна службе презентации при инициализации, поэтому я решил ее в ленивом свойстве.

    public ITimeout Timeout
    {
        get
        {
            if (_timeout == null)
                _timeout = _serviceLocator.GetInstance<ITimeout>();

            return _timeout;
        }
    }

Поскольку служба тайм-аута зарегистрирована при инициализации своего модуля, это свойство доступно, когда это необходимо. Это не идеально, но это работает. Мораль этой истории - идти с MEF .

Вздох!

...