В настоящее время я работаю над добавлением новой функции в существующий API. Допустим, у меня есть метод PerformTediousOperation
с параметром типа generi c:
void PerformTediousOperation<T>()
Этот метод находится внутри класса Operator
и может быть вызван так:
operatorInstance.PerformTediousOperation<T>()
Я хочу создать новый экземпляр Operator
и вызывать этот метод всякий раз, когда пользователь помечает тип атрибутом Operable
.
В настоящее время вот где я застрял:
MethodReference performTediousOperationMethodReference =
new MethodReference(
name: "PerformTediousOperation",
returnType: moduleDefinition.TypeSystem.Void,
declaringType: operatorTypeReference)
{
HasThis = true
};
Излучаемый код IL (в C#) просто PerformTediousOperation();
.
Как я могу исправить это так, чтобы выдаваемый код был вместо PerformTediousOperation<T>()
, где T
будет определено во время выполнения?
Пожалуйста, дайте мне знать, если требуется дополнительная информация.