2

Reflection.Emitを介して、静的フィールドnum1、num2などのタイプを生成しています。

生成された型の静的フィールドの内容を静的メソッドの評価スタックにロードするコードを出力する方法がわかりません。私がこれまでに試したことは次のとおりです。

generator.Emit(Opcodes.Ldarg, 0);
generator.Emit(Opcodes.Ldfld, "num1");

しかし、静的メソッドに提供されていない「this」にインスタンスフィールドをロードしようとするため、明らかにこれは機能しません。

静的フィールドにアクセスするには、どのオペコードを使用する必要がありますか?

4

1 に答える 1

12

Opcodes.Ldsfld

したがって、以前のようにnum1を作成したと仮定するとFieldBuilder num1 = ...、次の方法でスタックにロードできます。generator.Emit(Opcodes.ldsfld, num1);

于 2012-05-17T17:49:45.463 に答える