12.扩展字典(ExtensionDictionary)

发布时间:2024年01月11日

愿你出走半生,归来仍是少年! 

环境:.NET FrameWork4.5、ObjectArx 2016 64bit、Entity Framework 6. 

        在10.扩展数据(XData)中我们讲到每个DbObject有一个XData对象可以存储数据,除此之外每个DbObject对象还有一个ExtensionDictionary(扩展字典)可以进行数据存储。

        在使用XData时为方便存取数据在一个实体上需要使用多个RegApplication进行区分,这个就要求在开发时进行提前的RegApp注册,这个比较麻烦;除此之外,据公司在CAD绘图的同事说,以前会有CAD中病毒导致扩展数据丢失的情况,所以可能扩展字典是一个更好的数据存储方式。

        除此之外XData数据存储是有上限的(16kb),然而扩展字典通过使用Xrecord(数据扩展记录)可达到2GB的数据存储量。

1.字典       

        扩展字典继承于DBDictionary 对象,DBDictionary 是CAD中存储非图形对象的容器。字典以两种方式存在,一种是存储在数据库中用来保存整个图纸的数据叫 NameDictionaries(命名对象字典),一种是储存在对象中用于保存对象的信息数据叫 ExtensionDictionary(对象扩展字典)。

2.扩展字典     

        扩展字典通常以键值对的方式存储数据,其键为文本格式,值为Xrecord(数据扩展记录)。每个DbObject对象在初始状态是并未拥有扩展字典的,需用通过CreateExtensionDictionary方法进行创建,创建后的字典可存储独属于该对象的数据。

        通过DBDictionary 对象的SetAt

文章来源:https://blog.csdn.net/weixin_41012454/article/details/135538407
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。