The Last Day Of Summer

.NET技术 C# ASP.net ActiveReport SICP 代码生成 报表应用 RDLC
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

由自定义控件引出的IL代码的问题

Posted on 2004-07-06 20:04  Cure  阅读(911)  评论(1编辑  收藏  举报

在作自定义控件时碰到的问题

在作一个winform的自定义控件时,要给自定义控件添加在工具栏上显示的图片
使用了帮助里的方法:
[ToolboxBitmap(typeof(MyControl), "MyControlBitmap")]
class MyControl : UserControl
{
}
但是在工具箱里怎么也显示不出来,还是那个齿轮的图标,最后终于在帮助里
创作web控件的部分找到原因:没有把给控件用的位图编译到dll中,修改位图的生成操作为“嵌入的资源”后一切正常。

突然想到用Reflector看看,反编译后看到有一个Resources节点,展开后可以看到位图,以前从来没有注意过。
查找资料后明白在dll中嵌入的资源在IL里也是有标记的:.rsrc(废话,没标记怎么能反编译出来?),资源又分为托管和非托管两种,下面是我对自定义控件的dll反编译后看到的资源部分代码:

.mresource public CustomButton.Resource1.resources
{
}
.mresource public CustomButton.UserControl1.resources
{
}
.mresource public CustomButton.Bitmap1.bmp
{
}

这个.mresource标记的真正意义是Manifest Resource declarations 而不是我所预想的Manage Resource,但是这个Manifest 到底该怎么理解,偶用金山词霸还是找不到合适的。
还请大家多多指教

看到《.net框架程序设计》里Manifest是清单的意思