Exemple #1
0
        public static System.Object importXml(System.IO.Stream stream)
        {
            Type objType = null;
            Object member = null;
            FieldInfo fi;
            String temp = "";
            XmlReader xmlReader = XmlReader.Create(stream);
            while (xmlReader.Read())
            {
                switch (xmlReader.Name)
                {
                    case "Object":
                        member = new Map.Object();
                        objType = member.GetType();
                        break;
                    default:
                        break;
                }
                if (member != null)
                    break;
            }
            if (member == null)
            {
                xmlReader.Close();
                return member;
            }
            while (xmlReader.Read())
            {
                if (xmlReader.IsStartElement())
                    if (!xmlReader.IsEmptyElement)
                    {
                        fi = objType.GetField(xmlReader.Name);
                        switch (fi.FieldType.FullName)
                        {
                            case "System.Drawing.PointF":
                                temp = xmlReader.ReadElementContentAsString();
                                fi.SetValue(member, new System.Drawing.PointF(Convert.ToSingle(temp.Split(' ')[0]), Convert.ToSingle(temp.Split(' ')[1])));
                                break;
                            case "System.Byte[]":
                                temp = xmlReader.ReadElementContentAsString();
                                if (temp.Length > 0)
                                {
                                    System.IO.MemoryStream memstream = new System.IO.MemoryStream();
                                    System.IO.BinaryWriter wtr = new System.IO.BinaryWriter(memstream);
                                    System.Text.RegularExpressions.Regex bytes = new System.Text.RegularExpressions.Regex("[0-9|a-f|A-F]{2}");
                                    foreach (System.Text.RegularExpressions.Match match in bytes.Matches(temp))
                                        wtr.Write(Convert.ToByte(match.Value, 16));
                                    fi.SetValue(member, memstream.ToArray());
                                    wtr.Close();
                                }
                                break;
                            case "NoxShared.Map+Object+Property":
                                fi.SetValue(member, xmlReader.ReadElementContentAs(typeof(System.Int16), null));
                                break;
                            case "System.Collections.ArrayList":
                                break;
                            case "System.Collections.Generic.List<>":
                                break;
                            default:
                                try
                                {
                                    fi.SetValue(member, xmlReader.ReadElementContentAs(fi.FieldType, null));
                                }
                                catch
                                {
                                }
                                break;
                        }

                    }
            }
            xmlReader.Close();
            return member;
        }
Exemple #2
0
        public static System.Object importXml(System.IO.Stream stream)
        {
            Type      objType = null;
            Object    member  = null;
            FieldInfo fi;
            String    temp      = "";
            XmlReader xmlReader = XmlReader.Create(stream);

            while (xmlReader.Read())
            {
                switch (xmlReader.Name)
                {
                case "Object":
                    member  = new Map.Object();
                    objType = member.GetType();
                    break;

                default:
                    break;
                }
                if (member != null)
                {
                    break;
                }
            }
            if (member == null)
            {
                xmlReader.Close();
                return(member);
            }
            while (xmlReader.Read())
            {
                if (xmlReader.IsStartElement())
                {
                    if (!xmlReader.IsEmptyElement)
                    {
                        fi = objType.GetField(xmlReader.Name);
                        switch (fi.FieldType.FullName)
                        {
                        case "System.Drawing.PointF":
                            temp = xmlReader.ReadElementContentAsString();
                            fi.SetValue(member, new System.Drawing.PointF(Convert.ToSingle(temp.Split(' ')[0]), Convert.ToSingle(temp.Split(' ')[1])));
                            break;

                        case "System.Byte[]":
                            temp = xmlReader.ReadElementContentAsString();
                            if (temp.Length > 0)
                            {
                                System.IO.MemoryStream memstream           = new System.IO.MemoryStream();
                                System.IO.BinaryWriter wtr                 = new System.IO.BinaryWriter(memstream);
                                System.Text.RegularExpressions.Regex bytes = new System.Text.RegularExpressions.Regex("[0-9|a-f|A-F]{2}");
                                foreach (System.Text.RegularExpressions.Match match in bytes.Matches(temp))
                                {
                                    wtr.Write(Convert.ToByte(match.Value, 16));
                                }
                                fi.SetValue(member, memstream.ToArray());
                                wtr.Close();
                            }
                            break;

                        case "NoxShared.Map+Object+Property":
                            fi.SetValue(member, xmlReader.ReadElementContentAs(typeof(System.Int16), null));
                            break;

                        case "System.Collections.ArrayList":
                            break;

                        case "System.Collections.Generic.List<>":
                            break;

                        default:
                            try
                            {
                                fi.SetValue(member, xmlReader.ReadElementContentAs(fi.FieldType, null));
                            }
                            catch
                            {
                            }
                            break;
                        }
                    }
                }
            }
            xmlReader.Close();
            return(member);
        }