Замок Виндзор: найти сборку и использовать ее

Как мне сказать Каслу подобрать реализацию интерфейса из сборок в исполняющем каталоге.
Например

Как мне сказать Каслу найти реализацию для ILog, а затем, если я уроню log4net среди сборок в исполняющем каталоге, он должен выбрать его и использовать. Завтра, если я решу изменить log4net на Nlog, он должен подобрать Nlog для входа (оба, очевидно, должны реализовать ILog)

1 ответ

Решение

Вы вообще не должны быть такими неявными. Что делать, если предоставляется более одного импл? Что если вы случайно уроните что-то, что не собирались делать?

Тем не менее, вы должны использовать либо файл конфигурации, чтобы явно указать Windsor в XML, какой тип выполняет ваш сервис, либо использовать Binsor, если вы хотите большей гибкости. В коде нет магического метода "для этой службы выбрать любую реализацию, которая есть в любой сборке в этой папке", и вряд ли когда-либо будет.

А для конкретного сценария ведения журнала вы можете использовать средство ведения журнала Windsor.

Другие вопросы по тегам