Замок Виндзор: найти сборку-исполнитель и использовать ее - PullRequest
2 голосов
/ 10 февраля 2010

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

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

1 Ответ

3 голосов
/ 11 февраля 2010

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

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

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

...