很随便的随笔
- 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/
- FileSystemWatcher可以用来监视文件
- DockPanel Suite是一个开源的VS.NET风格的布局框架http://sourceforge.net/projects/dockpanelsuite/
- 动态创建类的方法,参考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); - DebuggerDisplayAttribute可以用来修改该类型在Debug状态下显示在watcher里面的内容。
- Type.GetConstructor需要传入一个Type[]的数组,哪怕构造函数没有参数,否则会报异常。所以对于没有参数的构造函数,需要传入一个空数组: new Type[] {},不过Type有一个静态成员EmptyTypes可以使用