Рекомендации по настройке конфигурации статического свойства - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть вспомогательный компонент, используемый в нескольких классах. Это типичный сценарий:

public class HelperComponent 
{
    public void HelperMethod() 
    {
        // do something
    }
}

public class MyClass 
{
    private static HelperComponent Helper{ get; set;}

    public void Method1() 
    {
        Helper.HelperMethod();
    }
}

использование: new MyClass().Method1();

Хотелось бы узнать, что посоветует конфигурация / решение для Spring.net для этой конфигурации? Изначально я использовал эту строку для получения вспомогательного компонента:

ContextRegistry.GetContext().GetObject("HelperComponentName")

Затем я прочитал, что это не предпочтительное решение, и что я должен использовать инъекцию, чтобы избежать зависимости от пружины и использовать прозрачные компоненты.

Мой вопрос: как я могу добиться этого, используя конфигурацию пружины?

Можно ли добавить статическое свойство в класс? Или я должен сделать свойство экземпляра Helper? Если я преобразую Helper в свойство экземпляра, нужно ли мне определять MyClass в конфигурации Spring и использовать CreateObject для создания экземпляра MyClass?
Если да, это не является удовлетворительным решением для меня, потому что я хотел бы создать экземпляр MyClass, как написано выше.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 15 февраля 2012

Я не очень знаком с Spring, но при использовании контейнера IOC вы обычно регистрируете все зависимости вашего приложения (и их жизненные циклы), а затем разрешаете объект 'entry-point' в верхней части графа объектов. .

Это позволяет использовать преимущества контейнера IOC, такие как конструктор и внедрение свойства.

После такой настройки вы можете управлять жизненными циклами отдельных объектов с помощью конфигурации контейнеров IOC.

В этом случае я бы вставил HelperComponent в конструктор MyClass после регистрации HelperComponent как синглтона в конфигурации контейнера IOC.

...