簡體   English   中英

如何在ConstructorBuilder中定義局部變量?

[英]How do I define local variables in a ConstructorBuilder?

我想為在運行時構建的對象創建一個構造函數,該構造函數調用一個方法,該方法采用傳遞給ctor的所有參數的對象數組。 看看如何構建這樣的方法,看起來我必須做一些像::

method pulbic hidebysig specialname rtspecialname instance void .ctor(SomeObject arg) cil managed
{
  ldarg.0
  call void MyNameSpace.BaseClass::.ctor();
  ldc.i4.1
  newarr System.Object
  stloc.0
  ldloc.0
  ldc.i4.0
  ldarg.1
  stelem.ref
  ldloc.0
  call void SomeClass.Method(object[])
  ret
}

相當簡單,但如何在ctor構建器上定義object[]類型的局部變量? 似乎沒有定義變量的方法,或者我只是發出stloc.0/ldloc.0而不在意先定義它嗎?

你不能調用GetILGenerator()然后使用它來使用ILGenerator.DeclareLocal聲明一個局部變量嗎?

不可否認,我沒有嘗試使用任何這些,但聽起來這是要走的路......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM