Я столкнулся с этой, по-видимому, довольно распространенной проблемой -
У меня есть интерфейс в сборке A.
Я динамически загружаю сборку B и пытаюсь передать объект из нее в свой интерфейс из сборки A.
Сбой с InvalidCastException.
Я понял, почему — класс в сборке A и класс в сборке B, даже с одним и тем же именем и одним и тем же кодом, не одно и то же и не могут быть приведены друг к другу.
Мой вопрос: есть ли решение этого? Есть ли способ сделать эти два типа совместимыми, или мне нужно продублировать мой интерфейс в сборке B и привести к нему объект?
Я загружаю сборку B с помощью Assembly.LoadFrom - есть ли другой способ сделать это, чтобы сделать их совместимыми по типу?
Я не могу быть первым, кто столкнулся с этой проблемой. То, что я пытаюсь сделать, может показаться довольно распространенной задачей с архитектурой плагинов.