У меня есть требование загрузки сборки другой версии (у меня уже есть сборка с тем же именем в моем приложении).
Я смог загрузить сборку и загрузить метод, который мне нужно вызвать, используя отражениено когда я вызываю метод, передавая мой объект класса в качестве аргумента, я получаю исключение, что объект класса не может быть преобразован в тип параметра аргумента.
Пример кода -
Assembly myAssembly = Assembly.LoadFrom("Assembly Path for assembly with different version");
object classObject = myAssembly.CreateInstance("ClassName");
Type classType = myAssembly.GetType("ClassName");
MethodInfo myMethod = classType.GetMethod("MyMethod", BindingFlags.Instance);
// Creating an object of class in the latest assembly and need to pass this
// to method in assembly with different version.
ClassInBothVesions parameter = new ClassInBothVesions();
myMethod.Invoke(classObject, new object[] { parameter });
Здесь параметр - это объект класса, который у меня есть в сборке, но поскольку класс параметров создается в сборке текущей версии.И когда я пытаюсь передать его методу предыдущей сборки, я получаю исключение, что он не может быть преобразован.
Как я могу этого добиться?Дайте мне знать, если мне понадобится добавить здесь дополнительную информацию.Заранее спасибо.