Мы используем единство как IoC. Мы столкнулись с уникальной проблемой.
Мы создали интерфейс под названием IPlugin. Этот интерфейс используется разными сторонними поставщиками для разработки своих собственных плагинов на основе этого интерфейса. Эти плагины затем вписываются в нашу систему.
Продавцы предоставят свои заглушки как dll. Что мы хотим,
Используя Unity, мы хотим разрешить все типы сборок, которые реализованы с помощью интерфейса IPlugin. Я узнал, что это достижимо с помощью атрибута экспорта MEF, мне интересно, может ли это быть достигнуто с помощью Unity, используя некоторое расширение.
Наш код
Public interface IPlugin
{
Void ProcessData();
}
Public class DataProcessor
{
Var pluginList = unityContainer.ResolveAssemblies<IPlugIn>()
/*
There is no such method in unity but what we want is scan all assemblies in bin folder and load all types which are inheriting from IPlugIn
*/
}
Сборка поставщика
Public class AbcCompanyPlugIn : IPlugin
{
Void ProcessData()
{
// some code
}
}
Public class XyzCompanyPlugIn : IPlugin
{
Void ProcessData()
{
// some code
}
}