Вот мой пример кода
public interface ICommonInterface
{
Task<T> SomeMethod<T>(string params) where T : new();
}
public class ExternalAssembly : ICommonInterface
{
public ExternalAssembly(string params) {...}
public async Task<T> SomeMethod<T>(string params) where T : new() {...}
}
Итак, я загружаю сборку из другого проекта, который также ссылается на ICommonInterface
. У меня есть следующий код, который завершается с ошибкой на последнем шаге
object assemblyInstance;
Assembly assembly;
assembly = Assembly.LoadFile(assemblyFile);
Type type = assembly.GetType("Namespace.ExternalAssembly");
assemblyInstance = Activator.CreateInstance(type, new[] { params });
var myClass = (assemblyInstance as ICommonInterface);
Проблема в том, что myClass
равно нулю
Предыдущая версия кода работала без нареканий, вот она (отличался только интерфейс)
public interface ICommonInterface
{
Task<SomeClass> SomeMethod(string params);
}
public class ExternalAssembly : ICommonInterface
{
public ExternalAssembly(string params) {...}
public async Task<SomeClass> SomeMethod(string params) {...}
}