Example #1
0
        private ISymbol method_7(string string_1)
        {
            int num2;

            byte[] buffer = Convert.FromBase64String(string_1);
            int    num    = buffer.Length - 16;

            byte[] b = new byte[16];
            for (num2 = 0; num2 < 16; num2++)
            {
                b[num2] = buffer[num2];
            }
            Guid clsid = new Guid(b);

            ESRI.ArcGIS.esriSystem.IPersistStream stream =
                Activator.CreateInstance(System.Type.GetTypeFromCLSID(clsid)) as IPersistStream;
            byte[] buffer3 = new byte[num];
            for (num2 = 0; num2 < num; num2++)
            {
                buffer3[num2] = buffer[num2 + 16];
            }
            IMemoryBlobStream pstm = new MemoryBlobStreamClass();

            ((IMemoryBlobStreamVariant)pstm).ImportFromVariant(buffer3);
            stream.Load(pstm);
            return(stream as ISymbol);
        }
Example #2
0
        private IElement method_2(object object_0)
        {
            IMemoryBlobStream o    = object_0 as IMemoryBlobStream;
            IPropertySet      set  = new PropertySetClass();
            IObjectStream     pstm = new ObjectStreamClass
            {
                Stream = o
            };

            ESRI.ArcGIS.esriSystem.IPersistStream stream3 = set as ESRI.ArcGIS.esriSystem.IPersistStream;
            stream3.Load(pstm);
            IElement property = null;

            try
            {
                property = set.GetProperty("Element") as IElement;
            }
            catch (Exception)
            {
            }
            ComReleaser.ReleaseCOMObject(stream3);
            ComReleaser.ReleaseCOMObject(set);
            ComReleaser.ReleaseCOMObject(o);
            set = null;
            return(property);
        }
Example #3
0
        private void btnSaveAs_Click(object sender, EventArgs e)
        {
            SaveFileDialog dialog = new SaveFileDialog
            {
                Filter          = "空间参考文件 (*.prj)|*.prj",
                OverwritePrompt = true
            };

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                string fileName = dialog.FileName;
                ESRI.ArcGIS.esriSystem.IPersistStream stream =
                    (ESRI.ArcGIS.esriSystem.IPersistStream) this.ispatialReference_0;
                IXMLStream stream2 = new XMLStreamClass();
                stream.Save((ESRI.ArcGIS.esriSystem.IStream)stream2, 1);
                stream2.SaveToFile(fileName);
                string str2  = stream2.SaveToString();
                int    index = str2.IndexOf("[");
                str2  = str2.Substring(index - 6);
                index = str2.LastIndexOf("]");
                str2  = str2.Substring(0, index + 1);
                if (File.Exists(fileName))
                {
                    File.Delete(fileName);
                }
                using (System.IO.FileStream stream3 = File.Create(fileName))
                {
                    this.method_2(stream3, str2);
                }
            }
        }
Example #4
0
        /// <summary>
        /// 序列化(将对象序列化成字符串)
        /// </summary>
        /// <param name="xmlByte">序列化字节</param>
        /// <param name="obj">序列化对象</param>
        /// <returns></returns>
        public static byte[] xmlSerializer(object obj)
        {
            try
            {
                byte[] xmlByte = null;//保存序列化后的字节
                //判断是否支持IPersistStream接口,只有支持该接口的对象才能进行序列化
                if (obj is ESRI.ArcGIS.esriSystem.IPersistStream)
                {
                    ESRI.ArcGIS.esriSystem.IPersistStream pStream = obj as ESRI.ArcGIS.esriSystem.IPersistStream;

                    ESRI.ArcGIS.esriSystem.IXMLStream xmlStream = new ESRI.ArcGIS.esriSystem.XMLStreamClass();

                    pStream.Save(xmlStream as ESRI.ArcGIS.esriSystem.IStream, 0);

                    xmlByte = xmlStream.SaveToBytes();
                }
                return(xmlByte);
            }
            catch (Exception ex)
            {
                ////*********************************************
                ////guozheng 2010-12-24 平安夜  added 系统异常日志
                //if (ModData.SysLog == null) ModData.SysLog = new clsWriteSystemFunctionLog();
                //ModData.SysLog.Write(ex);
                ////**********************************************
                return(null);
            }
        }
Example #5
0
        private void method_5()
        {
            ESRI.ArcGIS.esriSystem.IPersistStream stream =
                (ESRI.ArcGIS.esriSystem.IPersistStream) this.ispatialReference_0;
            IXMLStream stream2 = new XMLStreamClass();

            stream.Save((ESRI.ArcGIS.esriSystem.IStream)stream2, 1);
            string str   = stream2.SaveToString();
            int    index = str.IndexOf("[");

            str   = str.Substring(index - 6);
            index = str.LastIndexOf("]");
            str   = str.Substring(0, index + 1);
        }
Example #6
0
        private string method_6(ISymbol isymbol_0)
        {
            Guid   guid;
            object obj2;

            ESRI.ArcGIS.esriSystem.IPersistStream stream = (ESRI.ArcGIS.esriSystem.IPersistStream)isymbol_0;
            IMemoryBlobStream pstm    = new MemoryBlobStreamClass();
            IObjectStream     stream3 = new ObjectStreamClass
            {
                Stream = pstm
            };

            stream.GetClassID(out guid);
            stream.Save(pstm, 1);
            ((IMemoryBlobStreamVariant)pstm).ExportToVariant(out obj2);
            System.Array array  = obj2 as Array;
            byte[]       buffer = new byte[array.Length + 16];
            guid.ToByteArray().CopyTo(buffer, 0);
            array.CopyTo(buffer, 16);
            return(Convert.ToBase64String(buffer));
        }