以下接口用于实现动态属性:
上面列出的前三对中的每一个都显示一个旧接口名称,后跟更现代的对应项。所有这些接口仍然有效,但旧版本的范围更加有限,并且接口仅适用于实体,并且接口可以定义和管理实体和对象的属性。IDynamicPropertyIPropertyManagerIDynamicPropertyNotifyIDynamicProperty2IPropertyManager2IDynamicPropertyNotify2 接口使您能够定义运行时属性。对于要在“特性”选项板中显示的每个动态特性,可以从其中一个接口派生一个类。属性检查器调用派生类的方法以获取显示属性所需的信息。IDynamicPropertyIDynamicProperty2 但是,在将属性与对象关联之前,必须将它们附加到对象。这是通过、和实现完成的。这些接口中的每一个都管理对象和实例之间的链接,但它们以不同的方式进行。图 5 显示了动态属性对象、管理器和源与 AcRx 类之间的交互和多重性。AcRxClassIPropertyManagerIPropertyManager2IPropertySourceAcRxClass 物业经理和物业来源每个实例代表一个实例。动态属性向一个或多个实例注册自身,从而将自身绑定到实例。仅处理指向实例的指针,因此仅处理驻留在数据库的实体的动态属性。接受并返回指针 toorinstances。通过支持,将动态属性管理扩展到非数据库驻留对象。IPropertyManagerIPropertyManager2AcRxClassIPropertyManagerIPropertyManager2AcRxClassIPropertyManagerIDynamicPropertyIPropertyManager2IUnknownIDynamicPropertyIDynamicProperty2IDynamicProperty2IPropertyManager2 图5 - 动态属性机制 IPropertySource对象根据传递给它们的对象根据请求生成动态属性。对象生成的属性称为“每实例”动态属性。但是,不需要相关的对象实例。对象可以向属性检查器提供属性,即使将空对象传递给它也是如此。IPropertySourceIPropertySource 由于每个实例的属性是在运行时基于每个对象实例化的,因此这些属性不会注册到任何管理器对象。相反,生成它们的对象注册到一个对象,而对象又与一个相关联。每实例动态属性将在标题为实现每实例动态属性的部分中进一步讨论。IPropertySourceOPMPerInstancePropertyExtensionAcRxClass |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:20
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.