Как использовать Castle.Windsor в сборке, загруженной с использованием отражения

Допустим, у меня есть библиотека Lib.dll, которая использует Castle.Windsor для инициализации своих служб.

У меня есть основное приложение App.exe, которое загружает Lib.dll во время выполнения, используя отражение. App.exe не знает заранее местоположение Lib.dll, это известно только во время выполнения.

В этом случае, когда App.exe загружает Lib.dll и Lib.dll инициализирует свои службы, выдается исключение System.TypeInitializationException, поскольку Castle.Windsor не может найти тип службы.

Castle.MicroKernel.SubSystems.Conversion.ConverterException: Could not convert from 'Lib.TheServiceClass' to System.Type - Maybe type could not be found
   at Castle.MicroKernel.SubSystems.Conversion.TypeNameConverter.PerformConversion(String value, Type targetType) in e:\OSS.Code\Castle.Windsor\src\Castle.Windsor\MicroKernel\SubSystems\Conversion\TypeNameConverter.cs:line 91
   at Castle.MicroKernel.SubSystems.Conversion.DefaultConversionManager.PerformConversion(String value, Type targetType) in e:\OSS.Code\Castle.Windsor\src\Castle.Windsor\MicroKernel\SubSystems\Conversion\DefaultConversionManager.cs:line 134
   at Castle.MicroKernel.SubSystems.Conversion.DefaultConversionManager.PerformConversion[TTarget](String value) in e:\OSS.Code\Castle.Windsor\src\Castle.Windsor\MicroKernel\SubSystems\Conversion\DefaultConversionManager.cs:line 162
   at Castle.Windsor.Installer.DefaultComponentInstaller.SetUpComponents(IConfiguration[] configurations, IWindsorContainer container, IConversionManager converter) in e:\OSS.Code\Castle.Windsor\src\Castle.Windsor\Windsor\Installer\DefaultComponentInstaller.cs:line 196
   at Castle.Windsor.Installer.DefaultComponentInstaller.SetUp(IWindsorContainer container, IConfigurationStore store) in e:\OSS.Code\Castle.Windsor\src\Castle.Windsor\Windsor\Installer\DefaultComponentInstaller.cs:line 52
   at Castle.Windsor.WindsorContainer.Install(IWindsorInstaller[] installers, DefaultComponentInstaller scope) in e:\OSS.Code\Castle.Windsor\src\Castle.Windsor\Windsor\WindsorContainer.cs:line 327
   at Castle.Windsor.WindsorContainer.Install(IWindsorInstaller[] installers) in e:\OSS.Code\Castle.Windsor\src\Castle.Windsor\Windsor\WindsorContainer.cs:line 674

Очевидно, Castle не может найти мой класс обслуживания, потому что он находится в Lib.dll, который не находится в каталоге App.exe. Когда я копирую Lib.dll в каталог App.exe, проблема исчезает, но нам не нужно копировать ее.

Итак, как мой код в Lib.dll может указать Castle.Windsor загрузить класс в правильном месте? (в папке Lib.dll, а не в папке App.exe)

Ответы на вопрос(3)

Ваш ответ на вопрос