IStyleGalleryItem 经转序列化/反序列化保存本地IStyleGallery文件
将IStyleGallery中的经序列化/反序列化过程中,需要使用IStyleGalleryStorage(PS:http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#/IStyleGalleryStorage_Interface/001w00000339000000/) 对IStyleGallery进行处理并利于IStyleGalleryStorage.Addfile()方法,添加本地ServerStyle文件路径。
在转换过程中,需要利用IEnumStyleGalleryItem 接收每个存放在ServerStyle文件中的 StyleGalleryItem 文件,其中需要注意符号的ClassName 和 Category属性,其中Category可设置为空值。然后通过IPersistStream 接口序列化成Blob文件存入数据库中。
在读取数据库符号文件时,首先需要将Blob 文件反序列化成为 StyleGalleryItem文件,在本地初始化时需要使用IStyleGallery.Clear()方法清除已经存在的符号文件,并通过IStyleGalleryStorage.TargetFile()方法设置要保存符号文件的位置。
AddFile()方法和TargetFile不可在此一起使用,这会导致添加StyleGalleryItem时,StyleGalleryItem的ID值会出现异常而使得IStyleGallery.AddItem()报错(PS: ex.message:值不在预期范围内)
最后需要注意的是对每一个利用IStyleGalleryStorage.Addfile() 方法添加到IStyleGallery 中的本地符号,最好都用IStyleGalleryStorage.Removefile()进行文件释放。避免后续调用该文件时会出错。

浙公网安备 33010602011771号