Я пытаюсь воспроизвести следующий IL с помощью Mono.Cecil:
call !!0 [mscorlib]System.Threading.Interlocked::CompareExchange<class [System]System.ComponentModel.PropertyChangedEventHandler>(!!0&, !!0, !!0)
Когда я использую Mono.Cecil для проверки этого IL, я вижу, что операндом инструкции является GenericInstanceMethod, которыйсодержит ElementMethod типа MethodReference.Эта MethodReference, в свою очередь, имеет тип возвращаемого значения типа GenericParameter.
Я бы хотел создать те же объекты вручную, но, похоже, достигнуть ловушки-22.Чтобы создать GenericParameter, мне нужен IGenericParameterOwner, который, похоже, является тем же MethodReference, что и выше.Поэтому я хотел бы передать MethodReference конструктору GenericParameter.Однако я не могу создать MethodReference без TypeReference для возвращаемого типа, который, как я полагаю, должен быть GenericParameter.
Как мне решить эту проблему?Что я недопонимаю?