解决方案 »
- 一个文件被SVN版本控制,如何通过代码修改它的内容
- dataGridView
- 高分 求个debug模式下的问题
- C#操作数据库问题,急急急!!!
- GDI+ 的问题
- 字符串要怎么转才能怎么支持XPATH语法
- WIN7 apphang1报错 服务器报错
- 关于Socket编程中IAsyncResult的用法,请教高手!
- winform dev的一个girdveiw中含有detailview,且带有checkbox(字表的),每次展开后第一行都默认勾选,如何去掉?
- C#[messagepackobject]和[Serializable],都什么时候去用
- C#编写与单片机的串口通讯,总是收不到数据,经过调试,执行接受数据事件之前的程序都正常。。。
- c#中的try语句
====帮助分析下=====
foreach (Assembly assem in AppDomain.CurrentDomain.GetAssemblies())
{
if (assem.GetName().Name == "mscorlib")
{
fullName = assem.FullName;
}
}
Assembly sys = Assembly.Load("System" + fullName.Substring(fullName.IndexOf(",")));
Type t = sys.GetType("System.Timers.Timer");
timer = Activator.CreateInstance(t);
EventInfo eInfo = t.GetEvent("Elapsed");
Type handlerType = eInfo.EventHandlerType;
MethodInfo invokeMethod = handlerType.GetMethod("Invoke");
ParameterInfo[] parms = invokeMethod.GetParameters();
Type[] parmTypes = new Type[parms.Length];
for (int i = 0; i < parms.Length; i++)
{
parmTypes[i] = parms[i].ParameterType;
}
AssemblyName aName = new AssemblyName();
aName.Name = "DynamicTypes";
AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly(aName, AssemblyBuilderAccess.Run);
ModuleBuilder mb = ab.DefineDynamicModule(aName.Name);
TypeBuilder tb = mb.DefineType("Handler", TypeAttributes.Class | TypeAttributes.Public);
MethodBuilder handler = tb.DefineMethod("DynamicHandler",MethodAttributes.Public | MethodAttributes.Static,invokeMethod.ReturnType, parmTypes);
ILGenerator il = handler.GetILGenerator();
il.EmitWriteLine("Timer's Elapsed event is raised.......");
il.Emit(OpCodes.Ret);
Type finished = tb.CreateType();
MethodInfo eventHandler = finished.GetMethod("DynamicHandler");
Delegate d = Delegate.CreateDelegate(handlerType, eventHandler);
eInfo.AddEventHandler(timer, d);
t.InvokeMember("Interval", BindingFlags.SetProperty, null, timer, new Object[] { 4000 });
t.InvokeMember("Enabled", BindingFlags.SetProperty, null, timer, new Object[] { true });
Console.WriteLine("Press the Enter key to end the program.");
Console.ReadLine();