У меня есть приложение, которое выполняет обработку данных.Существует
class Pipeline {
IEnumerable<IFilter> Filters {get; set;}
Я регистрирую реализации фильтров как
builder.RegisterType<DiversityFilter>().As<IFilter>();
builder.RegisterType<OverflowFilter>().As<IFilter>();
...
Пока все хорошо.Теперь для экспериментов и тонкой настройки я хочу иметь возможность переопределить любую реализацию фильтра в конфигурационном файле с помощью программы (сценария), которая будет считывать данные из stdin, обрабатывать их и отправлять данные в stdout.Я реализовал модуль с пользовательскими свойствами «fileName», «args» и «replaceOf», описал модуль в XML и получил его.
В модуле я регистрирую свой «ExecutableFilter», но как мне сделатьэто запустить "вместо" желаемого сервиса?Если я попытаюсь сделать это следующим образом:
builder.RegisterType<ExecutableFilter>().As<DiversityFilter>()
, тогда я получу исключение «Тип ExecutableFilter не может быть назначен службе« DiversityFilter ».».Хорошо, это логично.Но каковы мои варианты тогда?