需要序列化的对象 /// 序列化后的字符串_map 中包含geometry 怎么序列化">
当前位置:   article > 正文

ArcGIS Engine基础(1)之Geometry序列化和反序列化_map 中包含geometry 怎么序列化

map 中包含geometry 怎么序列化

geometry图形序列化和反序列化的一种常见场景是当需要复制图形到剪切板时,通过反序列化可以达到按原样粘贴图形的效果。

  1. /// <summary>
  2. ///序列化对象
  3. /// </summary>
  4. /// <param name="objectNeedSerialize">需要序列化的对象</param>
  5. /// <returns>序列化后的字符串</returns>
  6. public static string SerializeObject(object objectNeedSerialize) {
  7. if (objectNeedSerialize == null) return null;
  8. IPersist persistObject = objectNeedSerialize as IPersist;
  9. if (persistObject == null)
  10. throw new Exception("The serializing object must implement IPersist interface!");
  11. try {
  12. IXMLStream pStream = new XMLStreamClass();
  13. IXMLWriter pWriter = new XMLWriterClass();
  14. pWriter.WriteTo(pStream as IStream);
  15. IXMLSerializer pSerializer = new XMLSerializerClass();
  16. pSerializer.WriteObject(pWriter, null, null, "", "", persistObject);
  17. return pStream.SaveToString();
  18. }
  19. catch {
  20. return null;
  21. }
  22. }
  23. /// <summary>
  24. /// 反序列化对象
  25. /// </summary>
  26. /// <param name="geometryString">对象被序列化后的字符串</param>
  27. /// <returns>反序列化后的对象</returns>
  28. public static object DeserializeObject(string serializedString) {
  29. if (string.IsNullOrEmpty(serializedString)) return null;
  30. IXMLStream stream = new XMLStreamClass();
  31. stream.LoadFromString(serializedString);
  32. IXMLReader reader = new XMLReaderClass();
  33. reader.ReadFrom(stream as IStream);
  34. IXMLSerializer serializer = new XMLSerializerClass();
  35. return serializer.ReadObject(reader, null, null);
  36. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/941020
推荐阅读
相关标签
  

闽ICP备14008679号