Метод set / инжекция свойства в Единице без атрибутов

Найдите свой config.inc.php и добавьте или отредактируйте строку

$cfg['DefaultCharset'] = 'iso-8859-1';
24
задан LittleBoyLost 5 February 2009 в 09:22
поделиться

3 ответа

Мне не нравятся те атрибуты также

, можно сделать, все использование эти Настраивает метод контейнера единицы:

Первый регистр тип

unityContainer.RegisterType<MyInterface,MyImpl>(
                     new ContainerControlledLifetimeManager());

, Если у Вас есть несколько конструкторов, необходимо будет сделать это так, Единица вызывает конструктора без параметров (если ни один не установил Единицу, пойдет для самого толстого)

unityContainer.Configure<InjectedMembers>()
                            .ConfigureInjectionFor<MyImpl>(
                                new InjectionConstructor()); 

зависимость от свойства Setting

unityContainer.Configure<InjectedMembers>()
                    .ConfigureInjectionFor<MyImpl>(
                         new InjectionProperty(
                             "SomePropertyName",
                                new ResolvedParameter<MyOtherInterface>()));

зависимость от метода Конфигурирования

unityContainer.Configure<InjectedMembers>()
                    .ConfigureInjectionFor<MyImpl>(
                        new InjectionMethod(
                            "SomeMethodName",
                            new ResolvedParameter<YetAnotherInterface>()));
19
ответ дан meJustAndrew 28 November 2019 в 22:59
поделиться

Следующая пошаговая демонстрация показывает один способ сделать его через конфигурацию. Можно, конечно, соединить его проводом через код также. http://aardvarkblogs.wordpress.com/unity-container-tutorials/10-setter-injection/

3
ответ дан Kim Major 28 November 2019 в 22:59
поделиться

Вы можете попробовать следующее:

этот код в MyClass

[InjectionMethod]
public void Initialize(
                 [Dependency] ILogger logger

, а затем его вызов:

unitycontainer.BuildUp<MyClass>(new MyClass());

unity вызовет метод Initialize с зависимостью от контейнера, а затем вы сможете сохраните его в частной переменной в MyClass или что-нибудь в этом роде ...

4
ответ дан 28 November 2019 в 22:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: