Thank you very much! :) I will read it carefully.

在 2016年3月4日星期五 UTC+8上午12:47:56,Jb Evain写道:
>
> It's possible, but it's not trivial. 
>
> IL-Repack does this: https://github.com/gluck/il-repack 
>
> Jb 
>
> On Thu, Mar 3, 2016 at 7:43 AM,  <[email protected] <javascript:>> 
> wrote: 
> > Thanks for your explantion, I am a green hand, so maybe I need more time 
> the 
> > understand it. 
> > I clearly know Mono.cecil can do everything to a C# program, because it 
> can 
> > read the original program and create new instructions to it. 
> > There is another question is: can it combines two programs into one or 
> > introduces some part of a program to another one?For example: 
> > There is a program like: 
> > Assembly A contains: 
> > class program 1 
> > { 
> >      public main(){} 
> > } 
> > Assembly B contains: 
> > class program 2 
> > { 
> >      variable a; 
> >      public fun(){ a...} 
> > } 
> > I wonder how to introduce the fun() in program 2 to program 1. if this 
> can 
> > be done, I can surely use 
> > Mono.cecil to let main() call the fun(). Now my initial idea is to 
> create 
> > the variable and fun() in program 1, just 
> > the  same to program 2 
> > but it feels a bit strange, is there a way to introduce them to program 
> 1? 
> > 
> > 
> > 在 2016年3月3日星期四 UTC+8上午12:44:04,Jb Evain写道: 
> >> 
> >> 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] <javascript:>. 
> > 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