Я ищу в сборках, чтобы определить любые классы, которые реализуют желаемый универсальный интерфейс, чтобы я мог динамически создавать экземпляр.Вот код, который я использую:
var types = assembly.GetTypes();
var assemblyFormatters = types.Where(type => type.GetInterfaces().Any(i =>
i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IInterface<>)));
Код работает для стандартного класса:
public class Implementation : IInterface<object>
, но не для универсального класса:
public class GenericImplementation<T> : IInterface<T>
* 1009Событие незнакомец, код успешно работает при запуске в промежуточном окне, но не при запуске в рамках модульного тестирования.Непосредственное окно возвращает 2 типа, тестовый код, запущенный под отладчиком, возвращает только неуниверсальную реализацию.
Я ожидаю, что оба типа будут возвращены кодом