Допустим, у меня есть контракт
public interface IGreeting
{
string SayHelloWorld();
}
И класс в другой dll
[Export(typeof(IGreeting))]
public class Greeting : IGreeting
{
public string SayHelloWorld()
{
return "GREETING V1";
}
}
Я использую каталог-каталог, чтобы получить эту DLL.У меня работает нормально.Когда я обновляю свой исходный код следующим образом:
[Export(typeof(IGreeting))]
public class Greeting : IGreeting
{
public string SayHelloWorld()
{
return "GREETING V2";
}
}
и помещаю эту новую DLL «Далее» в старую Greeting DLL, Mef не импортирует несколько различных классов Greeting, но выбирает 1 из 2 DLL и экспортирует 2 разатот же класс.
Итак, итоговый каталог выполнения выглядит следующим образом:
MyApp.exe
Greeting_V1.dll
Greeting_V2.dll
Я хочу, чтобы приложение импортировало 2 класса Greeting с помощью ImportMany.Это дает мне 2 экземпляра из Greeting_V1.dll.Если я удаляю Greeting_V2.dll, он дает мне только 1 экземпляр Greeting_V1.dll.