风过无痕,生命如烟

每个人生下来都是天使,不过这个世界上也存在着恶魔。恶魔是天使变的,因为这个世界充满了诱惑。

导航

很随便的随笔

  1. DevIL可以用来加载各种图片.bmp, .cut, .dds, .doom, .exr, .hdr, .gif, .ico, .jp2, .jpg,.lbm, .mdl, .mng, .pal, .pbm, .pcd, .pcx, .pgm, .pic, .png, .ppm, .psd, .psp, .raw, .sgi, .tga and .tif http://openil.sourceforge.net/,.NET封装版本:http://www.mastropaolo.com/devildotnet/
  2. FileSystemWatcher可以用来监视文件
  3. DockPanel Suite是一个开源的VS.NET风格的布局框架http://sourceforge.net/projects/dockpanelsuite/
  4. 动态创建类的方法,参考MSDN中的TypeBuilder和ConstructBuilder的例子。很好很强大的功能。之前看过的一个实现是:把要生成的类信息通过CodeDom写成C#源文件,然后调用C#编译器编译,再加载进来。而这个方法则是直接在程序中动态生成类。不过中间生成的方法就比较头大了,下面是从网上借来的范例代码。无语的汇编。不过可以先自己写一个类,然后编译,再用ILDASM.exe反汇编出来。提示实例方法argument 0是this 指针

    ILGenerator setIL = setPropMthdBldr.GetILGenerator();
    setIL.Emit(OpCodes.Ldarg_0);
    setIL.Emit(OpCodes.Ldarg_1);            
    //装载需要设置的属性值
    setIL.Emit(OpCodes.Stfld, fieldBuilder);//设置属性字段值,即保存传入的参数值
    setIL.Emit(OpCodes.Ret);

     

     

  5. DebuggerDisplayAttribute可以用来修改该类型在Debug状态下显示在watcher里面的内容。
  6. Type.GetConstructor需要传入一个Type[]的数组,哪怕构造函数没有参数,否则会报异常。所以对于没有参数的构造函数,需要传入一个空数组: new Type[] {},不过Type有一个静态成员EmptyTypes可以使用

posted on 2010-11-03 14:28  hyamw  阅读(210)  评论(0编辑  收藏  举报