2014-11-21 1 views
1

У меня есть набор приложений WebApi, MVC и приложений для Windows и библиотека регистрации (на основе nLog). Библиотека протоколирования упакована в виде nuget (если это имеет значение). Все клиенты и библиотека регистрации используют Castle Windsor. Библиотека протоколирования имеет сложный набор зависимостей, и в настоящее время во всех проектах, которые ее используют, я вставил большой блок регистрации.Как управлять зависимостями Castle Windsor в библиотеке nuget

Есть ли способ, чтобы библиотека использовала набор зависимостей по умолчанию (автоматически регистрируемых внутри нее) и изменила их на клиентах, только если им нужна опция, отличная от значения по умолчанию?

ответ

3

Вы можете создать installer для управления зависимостями:

public class RepositoriesInstaller : IWindsorInstaller 
{ 
    public void Install(IWindsorContainer container, IConfigurationStore store) 
    { 
     //container.Register(); 
    } 
} 

Затем клиенты могут установить его в своем контейнере, как это:

container.Install(new RepositoriesInstaller()); 

Вы можете включить эту программу установки в библиотеке (это означает, что ваша библиотека будет зависеть от Castle Windsor) или создать другой пакет (MyLib.CastleWindsor и т. д.), который содержит установщик.

 Смежные вопросы

  • Нет связанных вопросов^_^