ArcEngine序列化IFeatureRenderer对象

复制代码
 1 OpenFileDialog openFileDialog1 = new OpenFileDialog();
 2                openFileDialog1.Filter = "lyr文件(*.lyr)|*.lyr";
 3             openFileDialog1.InitialDirectory = @"d:\data";
 4             openFileDialog1.Multiselect = false;
 5             DialogResult pDialogResult = openFileDialog1.ShowDialog();
 6             if (pDialogResult != DialogResult.OK)
 7                 return;
 8             string pFileName = openFileDialog1.FileName;
 9             axMapControl1.AddLayerFromFile(pFileName);
10             //axMapControl1.ActiveView.Refresh();
11             axMapControl1.Extent = axMapControl1.FullExtent;
12             ILayer player = axMapControl1.get_Layer(0);
13             IFeatureLayer pfeatlayer = player as IFeatureLayer;
14             IGeoFeatureLayer pgeo=pfeatlayer as IGeoFeatureLayer;
15             IFeatureRenderer ren= pgeo.Renderer as IFeatureRenderer;
16             IPersistStream stream = ren as IPersistStream;
17 
18             ESRI.ArcGIS.esriSystem.IMemoryBlobStream pMemoryBlobStream = new ESRI.ArcGIS.esriSystem.MemoryBlobStreamClass();
19 
20             IObjectStream pObjectStream = new ObjectStreamClass();
21             pObjectStream.Stream = pMemoryBlobStream;
22             IPersistStream pPersistStream = (IPersistStream)ren;
23             pPersistStream.Save((IStream)pObjectStream, 0);
24             pMemoryBlobStream.SaveToFile(@"d:\a.render");
复制代码

程序还出现一个错误,修改Ae的Dll引用的属性“嵌入式互操作程序”为false。

posted @   太一吾鱼水  阅读(889)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示