Я собираюсь предположить, что вы совершили ту же ошибку, что и несколько раз.
Когда вы вызываете Type.GetConstructor(Type[])
и создаете массив типов, я иногда создаю массив объектов типов, по одному для каждого элемента массива.
Позвольте мне объяснить.
У меня есть массив целых чисел (System.Int32), и я хочу найти конструктор, который принимает один параметр, который является массивом таких целых чисел.
Теперь правильный путь в C # для создания массива типов, который можно передать в GetConstructor, выглядит следующим образом:
Type[] types = new Type[] { typeof(Int32[]) };
Вместо этого я несколько раз писал такой код:
Type[] types = (from v in arr select v.GetType()).ToArray();
Это глупая ошибка, но это изменение заставляет GetConstructor искать конструктор с тем же числом параметров, что и у моего массива.
Возможно, вы сделали то же самое?
Поскольку на самом деле вы не показываете нам код, который вызывает отражение, это всего лишь предположение.