Внедрение зависимостей Windsor с параметром в ctor

Я пытаюсь настроить Castle Windsor

У меня есть интерфейс IFileReader, реализованный FileReader, а FileReader имеет строковое свойство в конструкторе

Как установить это свойство, когда я пытаюсь получить экземпляр FileReader с помощью ServiceLocator?

Container.Register(Component.For<IFileReader>().ImplementedBy<FileReader>());

public class FileReader
{
public FileReader(string fileName)
.
.
.

ServiceLocator.Current.GetInstance<IFileReader>(); <- how pass filename??

person Rodrigo Juarez    schedule 17.06.2011    source источник
comment
Лучший вариант: вообще не использовать контейнер в качестве локатора службы: blog. ploeh.dk/2010/02/03/ServiceLocatorIsAnAntiPattern.aspx   -  person Mark Seemann    schedule 18.06.2011


Ответы (2)


Эта ссылка поможет вам.

Короче говоря, вы можете использовать DependsOn, ServiceOverrides, Parameters или DynamicParameters. Выберите тот, который лучше всего подходит для вас.

person oleksii    schedule 17.06.2011

Мы обсуждали эту тему в группе Alt.Net Hispano.

Вот ссылка (на испанском), если кому интересно http://groups.google.com/group/altnet-hispano/browse_thread/thread/5880f9e9fe5b5da4/200443a0b9e99040?show_docid=200443a0b9e99040

По сути, вы не можете делать то, что я хочу сделать: P

person Rodrigo Juarez    schedule 20.07.2011