次のような出力パラメーターを持つ Mono.Cecil を介して新しいメソッドを追加したいと思います。
private static bool XXXXX(out Int32 a)
このパラメーターを追加するために次のコードを試しました
TypeReference typeInt32 = targetAssembly.MainModule.TypeSystem.Int32.Resolve();
typeInt32 = targetAssembly.MainModule.Import(typeInt32);
method.Parameters.Add(new ParameterDefinition(typeInt32) { Name = "a", IsOut = true });
そして、追加したものとコンパイラが生成したもののILコードを比較します。それらは違う。
Cecil によって追加された鉱山:
.method private hidebysig static bool XXXXX([out] int32 a) cil managed
コンパイラは以下を生成します:
.method private hidebysig static bool XXXXX([out] int32& a) cil managed
Cecil が追加したメソッドを、コンパイラが生成するものと同じにする方法を知っている人はいますか?