Cool !

I'm not exactly sure I understand what you mean.

Import (ImportReference in master), creates a reference scoped to your
module from a metadata element defined in another module. This is
conceptually different from a C# using.

Jb


On Wed, Mar 2, 2016 at 7:23 AM,  <[email protected]> wrote:
> Thanks, it works! I wonder if the Import works like using.... in the C#
> code, but it works in minor scale, such as the type reference but not
> assembly reference?
>
> 在 2016年3月1日星期二 UTC+8下午7:20:19,[email protected]写道:
>>
>> I want to creat a new variable, for example, StreamWriter sw. I do like
>> this:
>>             var stream_ref = new TypeReference("System.IO",
>> "StreamWriter",MethodModule, null,true);
>>             var streamwriter = new VariableDefinition("writer",
>> stream_ref);
>>             method.Body.Variables.Add(streamwriter);
>> and I get the NullReferenceException, I feel there lacks something, but I
>> don't know where...I also wonder how to initialize the varible, like:
>>             StreamWriter sw = new StreamWriter("./test.txt", true);
>> and how to refer to it.
>>             Before, I try to create a varible like this:
>>             ins = ilProcessor.Create(OpCodes.Ldstr, @"./test.txt");
>>             ilProcessor.InsertBefore(instructions[0], ins);
>>             ins = ilProcessor.Create(OpCodes.Ldc_I4_1);
>>             ilProcessor.InsertBefore(method.Body.Instructions[1], ins);
>>             ins = ilProcessor.Create(OpCodes.Newobj,
>> MethodModule.Import(typeof(System.IO.StreamWriter).GetConstructor( new
>> Type[]{typeof(String), typeof(Boolean)})));
>>             ilProcessor.InsertBefore(instructions[2], ins);
>>             ins = ilProcessor.Create(OpCodes.Stloc_0);
>>             ilProcessor.InsertBefore(instructions[3], ins);
>> it doesn't work either.
>> I don't know why since the IL codes dumped from the one written in C# is
>> like that, I know I miss something...
>> Another question is how to use the variable?
>>
> --
> --
> --
> mono-cecil
> ---
> You received this message because you are subscribed to the Google Groups
> "mono-cecil" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.

-- 
-- 
--
mono-cecil
--- 
You received this message because you are subscribed to the Google Groups 
"mono-cecil" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to