System.Reflection.Emit を使用していますが、ある時点で MethodBuilder からデリゲートを作成したいと考えています。
MethodBuilder fooBuilder = createFooMethodBuilder();
ILGenerator ilGenerator = ...
Type delegateType = typeof(DelegateType);
LocalBuilder delegateVar = ilGenerator.DeclareLocal(delegateType);
//Somehow create emit instructions to create delegate from fooBuilder
//Store delegate in delegateVar using
静的関数からデリゲートを作成するには、次のようなものが使用されていることがわかりました。
ldnull
ldftn void class Test.MainClass::bar()
newobj instance void class Test.DelegateType::'.ctor'(object, native int)
しかし今、私は立ち往生しています。MethodBuilder を ldftn する方法が必要です。次に、次の行の命令を発行する方法が必要です。そして、ネイティブ int を受け入れるコンストラクターを取得する方法がわかりません。
助言がありますか?