Я получаю исключение InvalidOperationException с сообщением:
"Операции с поздним связыванием не могут быть выполнены для типов или методов, для которых ContainsGenericParameters имеет значение true."
Ниже приведена соответствующая часть кода:
// Gets the entity type of the table to update.
Type entityType = Jobs.GetType(syncSettings.TableToUpdate);
// Creates a generic list with the same type to hold the records to update.
Type listType = typeof(List<>).MakeGenericType(entityType);
object recordsToUpdate = Activator.CreateInstance(listType);
// Fills the list recordsToUpdate...
// A few lines below, I try to call the extension method ElementAt:
MethodInfo elementAtMethod = typeof(Enumerable).GetMethod("ElementAt", BindingFlags.Static | BindingFlags.Public);
elementAtMethod.MakeGenericMethod(entityType);
object record = elementAtMethod.Invoke(
recordsToUpdate,
new object[] { recordsToUpdate, recordIndex });
В моем последнем действии было упомянуто исключение, упомянутое выше. Что я делаю неправильно? Что означает эта ошибка?
Я занимался расследованием, и кажется, что тип параметра метода T все еще является общим. Вот почему ContainsGenericParameters это правда. Как мне установить параметр для entityType?