需要序列化的对象 ///
赞
踩
geometry图形序列化和反序列化的一种常见场景是当需要复制图形到剪切板时,通过反序列化可以达到按原样粘贴图形的效果。
- /// <summary>
- ///序列化对象
- /// </summary>
- /// <param name="objectNeedSerialize">需要序列化的对象</param>
- /// <returns>序列化后的字符串</returns>
- public static string SerializeObject(object objectNeedSerialize) {
- if (objectNeedSerialize == null) return null;
-
- IPersist persistObject = objectNeedSerialize as IPersist;
- if (persistObject == null)
- throw new Exception("The serializing object must implement IPersist interface!");
-
- try {
- IXMLStream pStream = new XMLStreamClass();
- IXMLWriter pWriter = new XMLWriterClass();
- pWriter.WriteTo(pStream as IStream);
- IXMLSerializer pSerializer = new XMLSerializerClass();
- pSerializer.WriteObject(pWriter, null, null, "", "", persistObject);
-
- return pStream.SaveToString();
- }
- catch {
- return null;
- }
- }
-
- /// <summary>
- /// 反序列化对象
- /// </summary>
- /// <param name="geometryString">对象被序列化后的字符串</param>
- /// <returns>反序列化后的对象</returns>
- public static object DeserializeObject(string serializedString) {
- if (string.IsNullOrEmpty(serializedString)) return null;
-
- IXMLStream stream = new XMLStreamClass();
- stream.LoadFromString(serializedString);
-
- IXMLReader reader = new XMLReaderClass();
- reader.ReadFrom(stream as IStream);
-
- IXMLSerializer serializer = new XMLSerializerClass();
-
- return serializer.ReadObject(reader, null, null);
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。