Hi,
On Thu, May 19, 2011 at 12:21 PM, srcKode <[email protected]> wrote:
> Can I get the Variables from the new method body with out actually
> saving it or adding it to the target assembly.
Yes.
> The steps i did to clone the method is
>
> 1.Add parameters
> 2.Add Variables
> 3.Add Exception Handlers(this have some issues too)
> 4.Add Instructions
>
> Sequentially ...
In pseudo code:
MethodDefinition originalMethod = ...;
MethodDefinition targetMethod = ...;
foreach (VariableDefinition variable in originalMethod.Body.Variables)
targetMethod.Body.Variables.Add (new VariableDefinition (import
(variable.VariableType)));
var il = targetMethod.Body.GetILProcessor ();
foreach (var instruction in originMethod.Body.Variables)
switch (instruction.OpCode.OperandType)
case InlineVar: case ShortInlineVar:
var originalVar = (VariableDefinition) instruction.Operand;
il.Emit (instruction.OpCode, targetMethod.Body.Variables
[originalVar.Index]);
Jb
--
--
mono-cecil