组件设计时支持小结

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都不是必须的它们各自有自己的特性,按需实现即可;

posted on 2008-05-01 13:23  baoli  阅读(515)  评论(1编辑  收藏  举报

导航