C# System.Reflection.Emit-如何向返回类型定义添加属性?

C# System.Reflection.Emit-如何向返回类型定义添加属性?,c#,.net,reflection.emit,C#,.net,Reflection.emit,我正在通过System.Reflection.Emit定义一些类型。想象一下,我想要具有一些自定义属性的方法签名,如下所示: [return: MyAttr] MyType MethodName([MyOtherAttr] MyOtherType); 我使用这样的代码生成它: TypeBuilder t = assembly.DefineType(...); MethodAttributes methodAttr = MethodAttributes.Public | MethodAttri

我正在通过System.Reflection.Emit定义一些类型。想象一下,我想要具有一些自定义属性的方法签名,如下所示:

[return: MyAttr]
MyType MethodName([MyOtherAttr] MyOtherType);
我使用这样的代码生成它:

TypeBuilder t = assembly.DefineType(...);

MethodAttributes methodAttr = MethodAttributes.Public | MethodAttributes.HideBySig | MethodAttributes.NewSlot;
MethodBuilder method = t.DefineMethod("MethodName", methodAttr, typeof(MyType), new Type[] { typeof(MyOtherType) });
method.SetImplementationFlags(MethodImplAttributes.Runtime | MethodImplAttributes.Managed);

// return type
ParameterBuilder pbr = method.DefineParameter(0, ParameterAttributes.Retval, null);
CustomAttributeBuilder cabr = GetMyAttrBuilder();
pbr.SetCustomAttribute(cabr);

// parameter
ParameterBuilder pbp = method.DefineParameter(1, ParameterAttributes.None, null);
CustomAttributeBuilder cabp = GetMyOtherAttrBuilder();
pbp.SetCustomAttribute(cabp);

t.CreateType();
但生成的方法签名是:

MyType MethodName([MyOtherAttr] MyOtherType);
缺少return属性:(知道如何实现正确的行为吗


提前感谢

此代码运行良好,只是C#反汇编程序没有显示,il one显示。

此代码运行良好,只是C#反汇编程序没有显示,il one显示