#c# #inversion-of-control #castle-windsor
#c# #инверсия контроля #castle-Виндзор
Вопрос:
В настоящее время у меня есть папка «PlugInFolder», куда я хочу скопировать свой пользовательский плагин в виде библиотеки DLL. Каждый подключаемый модуль реализует мой интерфейс «IPlugin».
Я хочу извлечь их во время выполнения с помощью Windsor Castle.
Я пробовал что-то подобное без результатов:
CastleContainer.Instance
.Install(
FromAssembly.InDirectory(new AssemblyFilter("PlugInFolder"))
);
CastleContainer.Instance.Register(Component.For<IPlugIn>());
IPlugIn[] plugIn= CastleContainer.Instance.ResolveAll<IPlugIn>();
Я получаю эту ошибку:
Type ImageEditorInterfaces.IPlugIn is abstract.
As such, it is not possible to instansiate it as implementation of service ImageEditorInterfaces.IPlugIn.
Ответ №1:
Попробуйте что-то вроде этого:
container.Register(AllTypes
.FromAssemblyInDirectory(new AssemblyFilter("PlugInFolder"))
.BasedOn<IPlugIn>());