动态属性接口
以下接口用于实现动态属性:
上面列出的前三对中的每一对都显示一个传统接口名称,后跟其更现代的对应项。所有这些接口仍然有效,但旧版本的范围更加有限。、 和 接口仅适用于实体。、 和 接口可以定义和管理实体和对象的属性。IDynamicPropertyIPropertyManagerIDynamicPropertyNotifyIDynamicProperty2IPropertyManager2IDynamicPropertyNotify2 通过 和 接口,可以定义运行时属性。对于要在“属性”选项板中显示的每个动态属性,您可以从这些接口之一派生一个类。属性检查器调用派生类的方法,以获取显示属性所需的信息。IDynamicPropertyIDynamicProperty2 Before your properties can be associated with objects, however, they must be attached to an AcRxClass object. This is done through IPropertyManager, IPropertyManager2, and IPropertySource implementations. Each of these interfaces manages links between objects and AcRxClass instances, but they do so in varying ways. Figure 5 shows the interaction and multiplicities between dynamic property objects, managers, and sources, and AcRx classes. 物业经理和物业来源或 的每个实例表示一个 .动态属性将自己注册到一个或多个或实例,从而将自己绑定到实例。 仅处理指向实例的指针,因此仅处理驻留在数据库中的实体的动态属性。 接受并返回指向 OR 实例的指针。通过支持,将动态属性管理扩展到非数据库驻留对象。IPropertyManagerIPropertyManager2AcRxClassIPropertyManagerIPropertyManager2AcRxClassIPropertyManagerIDynamicPropertyIPropertyManager2IUnknownIDynamicPropertyIDynamicProperty2IDynamicProperty2IPropertyManager2 ![]() 图5 - 动态属性机制 IPropertySource对象根据传递给它们的对象根据请求生成动态属性。对象生成的属性称为“每个实例”动态属性。但是,不需要相关的对象实例。对象可以向属性检查器提供属性,即使将 null 对象传递给它也是如此。IPropertySourceIPropertySource 由于每个实例的属性是在运行时基于每个对象实例化的,因此这些属性不会注册到任何管理器对象。相反,生成它们的对象注册到一个对象,而该对象又与 .每个实例的动态属性将在标题为“实现每个实例的动态属性”的部分中进一步讨论。IPropertySourceOPMPerInstancePropertyExtensionAcRxClass 父主题: |
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-3-14 08:50
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.