标签:des style blog color 使用 文件 数据 sp div
反射用来获取程序集及其相关信息。
反射发出是在运行时动态构造元数据和MSIL语言还可生产PE文件。
使用反射发出的步骤基本是固定的 ,用HELLO WORD 做开始
public void BuildeMthod() { //1.构建程序集 AppDomain myDomain = AppDomain.CurrentDomain; AssemblyName asmName = new AssemblyName(); asmName.Name = "MyDom"; AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly( asmName, AssemblyBuilderAccess.RunAndSave); //模块和类型 ModuleBuilder myModule = myAsmBuilder.DefineDynamicModule("MyDom", "MyDom.dll"); //类型 TypeBuilder myTypeBld = myModule.DefineType("MyDomType", TypeAttributes.Public); //方法 MethodBuilder myMthdBld = myTypeBld.DefineMethod( "SampleC", MethodAttributes.Public | MethodAttributes.Static ); //生成MSIL语言 ILGenerator ILout = myMthdBld.GetILGenerator(); ILout.Emit(OpCodes.Nop); ILout.Emit(OpCodes.Ldstr, "Hello World!"); MethodInfo mi = typeof(System.Console).GetMethod("Write", new Type[] { typeof(string) }); ILout.Emit(OpCodes.Call,mi); ILout.Emit(OpCodes.Nop); ILout.Emit(OpCodes.Ret); Type myType = myTypeBld.CreateType(); myAsmBuilder.Save("MyDom.dll"); MethodInfo myMthdInfo = myType.GetMethod("SampleC"); myMthdInfo.Invoke(myType,null); }
标签:des style blog color 使用 文件 数据 sp div
原文地址:http://www.cnblogs.com/nessie/p/3980816.html