我正在创建一个动态类型,它有一个我想返回一个对象的方法。我无法理解如何实现这一目标。这是我到目前为止所拥有的:
// .. stuff to create type builder
MethodBuilder builder =
typeBuilder.DefineMethod(
method.Name,
MethodAttributes.Virtual | MethodAttributes.Public,
method.CallingConvention,
method.ReturnType,
typeArray1);
builder.InitLocals = true;
ILGenerator gen = builder.GetILGenerator();
Object myObjectIdLikeToReturn = someMethodCall();
//gen.??(??????????) // here's where I'm lost
gen.Emit(OpCodes.Ldloc_0);
gen.Emit(OpCodes.Ret);
我相信,如果我正确阅读了 msdn,我需要在堆栈上获取 myObjectIdLikeToReturn 的引用——但是我没有运气。谁能指出我正确的方向?
编辑:为了更清楚。我正在尝试在 IL 中编写等效项:
public virtual Object MyNewMethod() {
return myObjectIdLikeToReturn;
}