<问题的延续> 关于[动态代码]编译后如何实现调用主应用程序里原来的方法!请大家关注...
上一个问题已经解决,地址:http://community.csdn.net/Expert/topic/5516/5516889.xml?temp=.9189264   
 如题!问题的缘由   请参阅如上地址...   
 我现在已经通过CodeDom动态的把字符串编译成程序集,并保存在内存当中(可调用)!   
 现在我想实现的是,在动态生成的[程序集]里面调用主应用程序的方法(注意:这是已编译好的物理文件)...   
 不知能否实现,请有相关经验的朋友   /   上一贴回答的朋友继续指教...   
 先谢了...   
 ^o^
------解决方案--------------------//也不知道这个是不是你想要的,或者是最简单的 
 //就是实现动态编译的程序回调静态的方法 
 //抛砖引玉吧   
 private void MyDelegate(object sender, EventArgs e) 
 { 
     MessageBox.Show( "Zswang 路过 "); 
 }   
 private void button1_Click(object sender, EventArgs e) 
 { 
     ICodeCompiler vCodeCompiler = new CSharpCodeProvider().CreateCompiler(); 
     CompilerParameters vCompilerParameters = new CompilerParameters(); 
     vCompilerParameters.GenerateExecutable = false; 
     vCompilerParameters.GenerateInMemory = true;   
     string vSource = 
          "using System;\n " + 
          "public class Temp\n " + 
          "{\n " + 
          "    public EventHandler myDelegate;\n " + 
          "    public void Test()\n " + 
          "    {\n " + 
          "        if (myDelegate != null)\n " + 
          "           myDelegate.Invoke(null, null);\n " + 
          "    }\n " + 
          "}\n "; 
     CompilerResults vCompilerResults = 
         vCodeCompiler.CompileAssemblyFromSource(vCompilerParameters, vSource);   
     Assembly vAssembly = vCompilerResults.CompiledAssembly; 
     object vTemp = vAssembly.CreateInstance( "Temp "); 
     FieldInfo vMyDelegate = vTemp.GetType().GetField( "myDelegate "); 
     vMyDelegate.SetValue(vTemp, new EventHandler(MyDelegate)); 
     MethodInfo vTest = vTemp.GetType().GetMethod( "Test "); 
     vTest.Invoke(vTemp, null); 
 }