惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
美团技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
aimingoo的专栏
aimingoo的专栏
腾讯CDC
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
F
Fortinet All Blogs
G
Google Developers Blog
MongoDB | Blog
MongoDB | Blog
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
Engineering at Meta
Engineering at Meta
博客园_首页
B
Blog RSS Feed
D
Docker
M
MIT News - Artificial intelligence
爱范儿
爱范儿
I
InfoQ

博客园 - baoli

健壮应用程序异常信息收集,捕捉UnhandledException,并生成dump文件 JProfile使用心得--windows版 一些关于debug和性能分析方面的资料收集 XML技术架构概要介绍 Unix Bourne Shell 注意问题备忘 [转载]socket编程原理 spring 笔记(java版) 说说网络通信模型 几个网络模型的示例代码(BlockingModel、OverlappedModel、WSAEventSelect、CompletionRoutine)..c++ 发个IOCP的C++例子 [转载]IOCP模型的总结 [转载]理解 I/O Completion Port (IOCP完成端口) [转载]手把手教你玩转SOCKET模型之重叠I/O篇 [转载]Windows网络编程系列教程之四:Select模型 [转载]同步、异步、阻塞和非阻塞的概念 网站内存泄漏问题追踪--初始访问后,三次查询点击内存使用量达400M 检测MDAC版本的检测器 关于如何判断程序和类库是Debug 还是 Release 的问题 oracle里面对数字的位与或运算
组件设计时支持小结
baoli · 2008-05-01 · via 博客园 - baoli

1、TypeConverter的作用(针对类型、组件属性)
1)实现类型的相互转换;
2)为该类型的组件属性提供最简单的、基于构造函数的序列化;
3)把该类型的组件属性分解为多个子属性,公开在属性修改器中;
4)为该类型的组件属性在设计时提供标准值列表;

2、UITypeEditor的作用(针对类型、组件属性)
1)用于指定该类型的组件属性在属性修改器中的编辑方式;
2)为组件属性提供自定义的编辑支持;

3、IDesigner的作用(针对组件)
1)在设计模式中更改、扩展组件的行为或外观;
2)在设计模式中执行组件的自定义初始化行为;
3)访问设计时服务并在项目中配置和创建组件(通过service、site实现);
4)向组件的快捷菜单添加菜单项;
5)调整由设计器所关联的组件所公开的特性、属性和事件(IDseignerFilter接口或ItypeDescriptionFilterService服务实现);

4、关于组件的初始化
1)组件在设计时的初始化由IDesigner完成;
2)TypeConverter可以为组件的属性提供标准值;
3)UITypeEditor和IDE的属性修改器从属性的角度为组件提供了运行时初始值的设定界面;
4)序列化的支持使设计时的配置传递到运行时;

5、关于属性序列化
1)DesignerSerializationVisibilityAttribute属性确定组件属性如何序列化;
2)ShouldSerializeDemoProperty方法后期调用,确定是否序列化组件属性(DemoProperty);
3)TypeConverter提供基于构造函数的类型级别的序列化方法;
4)DesignerSerializerAttribute和扩展CodeDomSerializer能实现组件的自定义设计时序列化(也可以用于类型级别的序列化,但不能用于属性级别);

6、设计时的复杂交互关系
1)在设计时中,组件、容器、站点,还有服务的关系是设计时的核心关系;
2)Designer、Editor、属性修改器IDE是组件配置的交互界面;
3)TypeConverter在设计时承担着界面展示数据到实际类型的转换,它也能用于运行时;
4)序列化是很重要的步骤,它决定着设计时的配置是否能在运行时反映;
5)Designer、Editor、TypeConverter都不是必须的它们各自有自己的特性,按需实现即可;