首页 > Web开发 > 详细

.NET 对实现IPersistStream接口的对象进行保存和读取

时间:2020-03-07 17:03:41      阅读:86      评论:0      收藏:0      [点我收藏+]

我们可以对实现IPersistStream接口的类的对象进行保存和读取,如Element,Map等等

以下为应用IPersistStream接口保存当前视图(Map)至文件读取文件并在当前视图展示的代码

 

 

            //保存当前视图至文件

 

            IMemoryBlobStream pMemoryBlobStream = new MemoryBlobStreamClass();

       IObjectStream pObjectStream = new ObjectStreamClass();

            pObjectStream.Stream = pMemoryBlobStream;

             IPersistStream pPersistStream = (IPersistStream)m_map;

             pPersistStream.Save((IStream)pObjectStream, 0);

             pMemoryBlobStream.SaveToFile(@"e:\myfile.blb");

 

            //读取文件并在当前视图展现

             IMemoryBlobStream pMemoryBlobStream = new MemoryBlobStreamClass();

             pMemoryBlobStream.LoadFromFile(@"e:\myfile.blb");

             IObjectStream pObjectStream = new ObjectStreamClass();

             pObjectStream.Stream=pMemoryBlobStream;

             IPersistStream pPersistStream = (IPersistStream)m_map;

             pPersistStream.Load((IStream)pObjectStream);

             m_activeView.Refresh();

 

  要素写入Oracle的Blob字段

 

            if (LayerIndex == -1)
            {
                Guid guid;
                object obj2;
                IPersistStream stream = (IPersistStream)Layer;
                IMemoryBlobStream stream2 = new MemoryBlobStreamClass();
                stream.GetClassID(out guid);
                stream.Save(stream2, 1);
                ((IMemoryBlobStreamVariant)stream2).ExportToVariant(out obj2);
                byte[] buffer = (byte[])obj2;
                sql = String.Format("{0}={1} and {2}={3}", TableHelper.FDLNodeId, NodeId, TableHelper.FDPrjId, nProjectId);
                DBHelper.DataAccess.SaveBLOB(TableHelper.TBLayerNode, TableHelper.FDLNodeRender, sql, buffer);
            }

 

 

 

.NET 对实现IPersistStream接口的对象进行保存和读取

原文:https://www.cnblogs.com/cglNet/p/12435247.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!