Example #1
0
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "usage":
                        Usage = reader.ReadContentAsInt();
                        break;
                    case "predicate":
                        PredicateName = reader.Value;
                        break;
                    case "namespace":
                        NamespaceName = reader.Value;
                        break;
                }
            }

            reader.Read();

            if (reader.NodeType == System.Xml.XmlNodeType.Text)
                PairName = reader.ReadContentAsString();

            reader.Read();
        }
Example #2
0
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            if (reader.LocalName != "place_type")
                UtilityMethods.CheckParsingException(reader);

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "place_type_id":
                    case "id":
                        Id = reader.ReadContentAsInt();
                        break;
                    default:
                        UtilityMethods.CheckParsingException(reader);
                        break;
                }
            }

            reader.Read();

            Name = reader.ReadContentAsString();

            reader.Skip();
        }
Example #3
0
File: Value.cs Project: liquidboy/X
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "usage":
                        Usage = reader.ReadContentAsInt();
                        break;
                    case "predicate":
                        PredicateName = reader.Value;
                        break;
                    case "namespace":
                        NamespaceName = reader.Value;
                        break;
                    case "first_added":
                        DateFirstAdded = UtilityMethods.UnixTimestampToDate(reader.Value);
                        break;
                    case "last_added":
                        DateLastUsed = UtilityMethods.UnixTimestampToDate(reader.Value);
                        break;
                }
            }

            reader.Read();

            if (reader.NodeType == System.Xml.XmlNodeType.Text)
                ValueText = reader.ReadContentAsString();

            reader.Read();

        }
        /// <summary>
        /// Generates a collection from its XML representation.
        /// </summary>
        /// <param name="reader">System.Xml.XmlReader</param>
        public void ReadXml(System.Xml.XmlReader reader)
        {
            this.Clear();
              if (reader.ReadToDescendant("SerializableStringDictionary"))
              {
            if (reader.ReadToDescendant("DictionaryEntry"))
            {
              do
              {
            reader.MoveToAttribute("Key");
            string key = reader.ReadContentAsString();
            reader.MoveToAttribute("Value");
            string value = reader.ReadContentAsString();

            this.Add(key, value);

              } while (reader.ReadToNextSibling("DictionaryEntry"));
            }
              }
        }
Example #5
0
        /// <summary>
        /// Reads the Node from the XML.
        /// </summary>
        /// <param name="reader">The instance of the XmlReader.</param>
        void IXmlSerializable.ReadXml(System.Xml.XmlReader reader)
        {
            ReadBasicXmlInfo(reader);

            reader.MoveToAttribute("AssemblyFile");
            AssemblyFile = reader.ReadContentAsString();
            reader.MoveToAttribute("Version");
            Version = reader.ReadContentAsString();

            reader.ReadStartElement();
            if (reader.IsEmptyElement == false) {
                XmlSerializer ser = new XmlSerializer(this.Cache.GetType());
                this.Cache = ser.Deserialize(reader) as Cache;

                List<object> propertiesObj = this.Cache.Childs.FindAll(c => c is Property);

                List<Property> properties = new List<Property>();
                foreach (Property p in propertiesObj)
                    properties.Add(p);

                this.Childs.AddRange(properties);
            }
        }
Example #6
0
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "score":
                        Score = reader.ReadContentAsInt();
                        break;
                }
            }

            reader.Read();

            if (reader.NodeType == System.Xml.XmlNodeType.Text)
                Tag = reader.ReadContentAsString();

            reader.Read();
        }
Example #7
0
        public void LoadFrom(System.Xml.XmlReader x)
        {
            if (x.ReadState == ReadState.Initial)
                x.Read();

            if (x.MoveToAttribute("Target"))
                TargetType = (DCompileTarget)Enum.Parse(typeof(DCompileTarget), x.ReadContentAsString());

            while(x.Read())
                switch (x.LocalName)
                {
                    case "CompilerCommand":
                        Compiler = x.ReadString();
                        break;
                    case "LinkerCommand":
                        Linker = x.ReadString();
                        break;
                    case "ObjectLinkPattern":
                        ObjectFileLinkPattern = x.ReadString();
                        break;
                    case "IncludePathPattern":
                        IncludePathPattern = x.ReadString();
                        break;

                    case "DebugArgs":
                        var s = x.ReadSubtree();
                        DebugArguments.ReadFrom(s);
                        s.Close();
                        break;

                    case "ReleaseArgs":
                        var s2 = x.ReadSubtree();
                        ReleaseArguments.ReadFrom(s2);
                        s2.Close();
                        break;
                }
        }
Example #8
0
 public void ReadXml(System.Xml.XmlReader reader)
 {
     //读取Name属性
     reader.MoveToAttribute("Name");
     this.Name = reader.ReadContentAsString();
     //开始读取型号信息
     reader.ReadStartElement();
     //读取刀具直径
     this.BladeDiameter = reader.ReadElementContentAsDouble("BladeDiameter", "");
     //读取刀具长度
     this.BladeLength = reader.ReadElementContentAsDouble("BladeLength", "");
     //读取工位列表
     reader.ReadStartElement("StationList");
     while (reader.NodeType == XmlNodeType.Element)
     {
         StationList.Add(new Station());
         StationList.Last().ReadXml(reader);
     }
     //结束读取信号信息
     reader.ReadEndElement();
 }
        public bool LoadFrom(DCompilerConfiguration cmpCfg,System.Xml.XmlReader x)
        {
            if (x.ReadState == ReadState.Initial)
                x.Read ();

            if (x.MoveToAttribute ("Target") &&
                !Enum.TryParse(x.ReadContentAsString(), true, out TargetType))
                    return false;

            while (x.Read())
                switch (x.LocalName) {
                // For backward compatibility keep on parsing this
                case "CompilerCommand":
                    cmpCfg.SourceCompilerCommand = x.ReadString ();
                    break;
                case "LinkerCommand":
                    Linker = x.ReadString ();
                    break;
                case "Patterns": // ditto
                    var s = x.ReadSubtree ();
                    cmpCfg.ArgumentPatterns.ReadFrom (s);
                    s.Close ();
                    break;
                case "DebugArgs":
                    s = x.ReadSubtree ();
                    DebugArguments.ReadFrom (cmpCfg, s);
                    s.Close ();
                    break;
                case "ReleaseArgs":
                    s = x.ReadSubtree ();
                    ReleaseArguments.ReadFrom (cmpCfg,s);
                    s.Close ();
                    break;
                }

            return true;
        }
Example #10
0
 public void ReadXml(System.Xml.XmlReader reader)
 {
     //读取工位号
     reader.MoveToAttribute("Number");
     this.Number = reader.ReadContentAsInt();
     //读取铣形环绕方向
     reader.MoveToAttribute("MillDirection");
     this.MillDirection = (Direction)Enum.Parse(typeof(Direction), reader.ReadContentAsString());
     //读取切边环绕方向
     reader.MoveToAttribute("CutDirection");
     this.CutDirection = (Direction)Enum.Parse(typeof(Direction), reader.ReadContentAsString());
     //开始读取工位信息
     reader.ReadStartElement("Station");
     //读取内外侧面切换高度
     this.InOutChangeHeight = reader.ReadElementContentAsInt("InOutChangeHeight", "");
     //读取对刀点
     this.ZeroPoint.ReadXml(reader, "ZeroPoint");
     //开始读取工序列表
     reader.ReadStartElement("ProcessList");
     while (XmlNodeType.Element == reader.NodeType) {
         ProcessList.Add(new Process());
         ProcessList.Last().ReadXml(reader);
     }
     //结束读取工位列表
     reader.ReadEndElement();
     //开始读取切边点列表
     reader.ReadStartElement("CutPointList");
     while (XmlNodeType.Element == reader.NodeType) {
         CutPointList.Add(new CutPoint());
         CutPointList.Last().ReadXml(reader, "CutPoint");
     }
     //结束读取切边点列表
     reader.ReadEndElement();
     //读取工位信息结束
     reader.ReadEndElement();
 }
 /// <summary>
 /// Helper function to get data from the XmlReader and transform it into a MockException
 /// </summary>
 /// <param name="reader">The reader to read from</param>
 public void ReadXml(System.Xml.XmlReader reader)
 {
     reader.ReadStartElement();
     string mockExceptionType = reader.Name;
     if (mockExceptionType == BinaryExceptionTypeKey)
     {
         // Deserialize a binary serialized exception.
         reader.ReadStartElement();
         BinaryFormatter formatter = new BinaryFormatter();
         MemoryStream stream = new MemoryStream(System.Convert.FromBase64String(reader.ReadContentAsString()));
         this.exception = (Exception)formatter.Deserialize(stream);
         reader.ReadEndElement();
     }
     else if (mockExceptionType == SqlExceptionTypeKey)
     {
         // Deserialize a SqlException.
         this.exception = DeserializeSqlException(reader);
     }
     else
     {
         // Unknown mock exception type
         throw new XmlException(string.Format("Unknown mock exception type '{0}' in mock query result.", mockExceptionType));
     }
     reader.ReadEndElement();
 }
Example #12
0
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            if (reader.LocalName != "note")
                UtilityMethods.CheckParsingException(reader);

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "id":
                        NoteId = reader.Value;
                        break;
                    case "author":
                        AuthorId = reader.Value;
                        break;
                    case "authorname":
                        AuthorName = reader.Value;
                        break;
                    case "x":
                        XPosition = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                        break;
                    case "y":
                        YPosition = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                        break;
                    case "w":
                        Width = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                        break;
                    case "h":
                        Height = int.Parse(reader.Value, System.Globalization.NumberFormatInfo.InvariantInfo);
                        break;
                    default:
                        UtilityMethods.CheckParsingException(reader);
                        break;
                }
            }

            reader.Read();

            NoteText = reader.ReadContentAsString();

            reader.Skip();
        }
        /// <summary>
        /// Reads a Fault reply from the service.
        /// </summary>
        /// <param name="reader">The reader, which should start at the "Fault" element.</param>
        /// <param name="operationName">Name of the operation.</param>
        /// <returns>A FaultException with the details in the server reply</returns>
        private static FaultException<DomainServiceFault> ReadFaultException(System.Xml.XmlDictionaryReader reader, string operationName)
        {
            FaultCode faultCode;
            FaultReason faultReason;
            List<FaultReasonText> faultReasons = new List<FaultReasonText>();

            reader.ReadStartElement("Fault"); // <Fault>
            reader.ReadStartElement("Code");  // <Code>
            reader.ReadStartElement("Value"); // <Value>
            faultCode = new FaultCode(reader.ReadContentAsString());
            reader.ReadEndElement(); // </Value>
            reader.ReadEndElement(); // </Code>

            reader.ReadStartElement("Reason");
            while (reader.LocalName == "Text")
            {
                var lang = reader.XmlLang;
                reader.ReadStartElement("Text");
                var text = reader.ReadContentAsString();
                reader.ReadEndElement();

                faultReasons.Add(new FaultReasonText(text, lang));
            }
            reader.ReadEndElement(); // </Reason>
            faultReason = new FaultReason(faultReasons);

            reader.ReadStartElement("Detail"); // <Detail>
            var fault = (DomainServiceFault)s_faultSerializer.ReadObject(reader);
            return new FaultException<DomainServiceFault>(fault, faultReason, faultCode, operationName);
        }
Example #14
0
 /// <summary>
 /// Reads bais Informations from the XML.
 /// </summary>
 /// <param name="reader">The instance of the XmlReader.</param>
 protected void ReadBasicXmlInfo(System.Xml.XmlReader reader)
 {
     reader.MoveToAttribute("Name");
     this.Name = reader.ReadContentAsString();
     reader.MoveToAttribute("Fullname");
     this.Fullname = reader.ReadContentAsString();
     reader.MoveToAttribute("UID");
     this.UID = reader.ReadContentAsString();
 }
Example #15
0
 public void ReadXml(System.Xml.XmlReader reader)
 {
     //读取工序号属性
     reader.MoveToAttribute("Number");
     this.Number = reader.ReadContentAsInt();
     //读取加工面类型属性
     reader.MoveToAttribute("SideType");
     this.SideType = (SideType)Enum.Parse(typeof(SideType), reader.ReadContentAsString());
     //读取加工类型属性
     reader.MoveToAttribute("ProcessType");
     this.ProcessType = (ProcessType)Enum.Parse(typeof(ProcessType), reader.ReadContentAsString());
     //读取加工形状属性
     reader.MoveToAttribute("ProcessShape");
     this.ProcessShape = (ProcessShape)Enum.Parse(typeof(ProcessShape), reader.ReadContentAsString());
     //读取是否为外侧工序标识属性
     reader.MoveToAttribute("IsOutSide");
     this.IsOutside = bool.Parse(reader.ReadContentAsString());
     //读取矩形加工环绕方向
     reader.MoveToAttribute("RecDirection");
     this.RecDirection = (Direction)Enum.Parse(typeof(Direction), reader.ReadContentAsString());
     //开始读取工序信息元素
     reader.ReadStartElement();
     //读取圆直径
     this.Diameter = reader.ReadElementContentAsDouble("Diameter", "");
     //读取矩形长
     this.Width = reader.ReadElementContentAsDouble("Width", "");
     //读取矩形宽
     this.Height = reader.ReadElementContentAsDouble("Height", "");
     //读取加工起始点元素
     this.StartPoint.ReadXml(reader, "StartPoint");
     //读取钻入点元素
     this.IntoPoint.ReadXml(reader, "IntoPoint");
     //结束读取工序信息元素
     reader.ReadEndElement();
 }
Example #16
0
        /// <summary>
        /// Reads the Tool from the XML.
        /// </summary>
        /// <param name="reader">The instance of the XmlReader.</param>
        void IXmlSerializable.ReadXml(System.Xml.XmlReader reader)
        {
            ReadBasicXmlInfo(reader);

            reader.MoveToAttribute("AssemblyFile");
            AssemblyFile = reader.ReadContentAsString();
            reader.MoveToAttribute("Version");
            Version = reader.ReadContentAsString();

            reader.ReadStartElement();
            if (reader.IsEmptyElement == false) {
                XmlSerializer ser = new XmlSerializer(this.Cache.GetType());
                this.Cache = ser.Deserialize(reader) as Cache;

                List<object> tools = this.Cache.Childs.FindAll(c => c is Tool);
                List<object> propertiesObj = this.Cache.Childs.FindAll(c => c is ns.Base.Plugins.Properties.Property);

                List<Property> properties = new List<Property>();
                foreach (Property p in propertiesObj)
                    properties.Add(p);

                if (tools != null)
                    this.Childs = new List<object>(tools);

                this.Childs.AddRange(properties);
            }

            while (!reader.IsStartElement()) {
                if (reader.Name == "Cache") {
                    reader.ReadEndElement();
                    break;
                }

                reader.ReadEndElement();
            }
        }
Example #17
0
        private static Entity ReadRow(Entity parent, System.Xml.XmlTextReader r)
        {
            if (parent != null && r.AttributeCount <= 1) //tabular section, no attributes or "key"
            {
                String tsName = r.Name;

                if (r.MoveToFirstAttribute())
                {
                    if (r.Name.ToLower().Equals("key")) //only key attrbute is allowed
                        parent.AddTabularSection(tsName, r.Value);
                    else
                        throw new Exception(String.Format("Invalid tabular section attribute '{0}'", r.Name));
                }
                else
                    parent.AddTabularSection(tsName);

                return parent;
            }
            else
            {
                Entity entity = new Entity(r.Depth);
                if (r.MoveToFirstAttribute())
                {
                    do
                    {
                        String name = r.Name;
                        r.ReadAttributeValue();
                        entity.Attributes.Add(name, r.ReadContentAsString());
                    }
                    while (r.MoveToNextAttribute());
                }

                if (parent != null)
                {
                    parent.CurrentTabularSection.AddEntity(entity);
                    return parent;
                }
                else
                    return entity;
            }
        }
Example #18
0
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            if (reader.LocalName != "url")
                UtilityMethods.CheckParsingException(reader);

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "type":
                        UrlType = reader.Value;
                        break;
                    default:
                        UtilityMethods.CheckParsingException(reader);
                        break;
                }
            }

            reader.Read();

            Url = reader.ReadContentAsString();

            reader.Skip();
        }
Example #19
0
        /// <summary>
        /// Reads the Property from the XML.
        /// </summary>
        /// <param name="reader">The instance of the XmlReader.</param>
        void IXmlSerializable.ReadXml(System.Xml.XmlReader reader)
        {
            ReadBasicXmlInfo(reader);
            if(reader.MoveToAttribute("IsOutput"))
                this.IsOutput = Convert.ToBoolean(reader.ReadContentAsString());
            if (reader.MoveToAttribute("IsMonitored"))
                this.IsMonitored = Convert.ToBoolean(reader.ReadContentAsString());
            if(reader.MoveToAttribute("ConnectedToUID"))
                this.ConnectedToUID = reader.ReadContentAsString();

            if (reader.IsEmptyElement == false) {
                reader.ReadStartElement();
                if (reader.Name == "anyType") {
                    try {
                        XmlSerializer ser = new XmlSerializer(typeof(object));
                        this.Value = ser.Deserialize(reader);
                    } catch (Exception ex) {
                        Trace.WriteLine(ex.Message, ex.StackTrace, LogCategory.Error);
                    }
                } else if(reader.Name == "ArrayOfDouble") {
                    try {
                        XmlSerializer ser = new XmlSerializer(typeof(List<double>));
                        this.Value = ser.Deserialize(reader);
                    } catch (Exception ex) {
                        Trace.WriteLine(ex.Message, ex.StackTrace, LogCategory.Error);
                    }
                } else if (reader.Name == "ArrayOfInteger") {
                    try {
                        XmlSerializer ser = new XmlSerializer(typeof(List<int>));
                        this.Value = ser.Deserialize(reader);
                    } catch (Exception ex) {
                        Trace.WriteLine(ex.Message, ex.StackTrace, LogCategory.Error);
                    }
                }
            }

            if (reader.Name == "Cache" && reader.IsStartElement()) {
                reader.ReadStartElement();
                try {
                    XmlSerializer ser = new XmlSerializer(this.Cache.GetType());
                    this.Cache = ser.Deserialize(reader) as Cache;
                } catch (Exception ex) {
                    Trace.WriteLine(ex.Message, ex.StackTrace, LogCategory.Error);
                }
                this.Childs = new List<object>(this.Cache.Childs);
            }

            if(reader.Name.Contains("ToleranceOf") && reader.IsStartElement()) {
                reader.ReadStartElement();
                this.Tolerance = new Tolerance<object>();
                string min = reader.ReadInnerXml();
                string max = reader.ReadInnerXml();
                this.Tolerance.Min = min;
                this.Tolerance.Max = max;
            }

            while (!reader.IsStartElement()) {
                if (reader.Name == "Cache") {
                    reader.ReadEndElement();
                    break;
                }

                reader.ReadEndElement();
            }
        }
Example #20
0
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            if (reader.LocalName != "tag")
                UtilityMethods.CheckParsingException(reader);

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "id":
                        TagId = reader.Value;
                        break;
                    case "author":
                        AuthorId = reader.Value;
                        break;
                    case "authorname":
                        AuthorName = reader.Value;
                        break;
                    case "raw":
                        Raw = reader.Value;
                        break;
                    case "machine_tag":
                        IsMachineTag = reader.Value == "1";
                        break;
                    default:
                        UtilityMethods.CheckParsingException(reader);
                        break;
                }
            }

            reader.Read();

            TagText = reader.ReadContentAsString();

            reader.Skip();
        }
Example #21
0
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            if (reader.LocalName != "comment")
                UtilityMethods.CheckParsingException(reader);

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "id":
                        CommentId = reader.Value;
                        break;
                    case "author":
                        AuthorUserId = reader.Value;
                        break;
                    case "authorname":
                        AuthorUserName = reader.Value;
                        break;
                    case "permalink":
                        Permalink = reader.Value;
                        break;
                    case "datecreate":
                        DateCreated = UtilityMethods.UnixTimestampToDate(reader.Value);
                        break;
                    case "iconserver":
                        IconServer = reader.Value;
                        break;
                    case "iconfarm":
                        IconFarm = reader.Value;
                        break;
                    case "path_alias":
                        AuthorPathAlias = reader.Value;
                        break;
                    case "realname":
                        AuthorRealName = reader.Value;
                        break;
                    default:
                        UtilityMethods.CheckParsingException(reader);
                        break;
                }
            }

            reader.Read();

            CommentHtml = reader.ReadContentAsString();

            reader.Skip();
        }
        /// <summary>
        /// Serializes the XML to an instance.
        /// </summary>
        /// <param name="reader"></param>
        void IFlickrParsable.Load(System.Xml.XmlReader reader)
        {
            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                    case "name":
                        Description = reader.Value;
                        break;
                    case "place_id":
                        PlaceId = reader.Value;
                        break;
                    case "place_url":
                        PlaceUrl = reader.Value;
                        break;
                    case "place_type_id":
                        PlaceType = (PlaceType)reader.ReadContentAsInt();
                        break;
                    case "place_type":
                        PlaceType = (PlaceType)Enum.Parse(typeof(PlaceType), reader.Value, true);
                        break;
                    case "woeid":
                        WoeId = reader.Value;
                        break;
                    case "woe_name":
                        WoeName = reader.Value;
                        break;
                    case "latitude":
                        Latitude = reader.ReadContentAsDouble();
                        break;
                    case "longitude":
                        Longitude = reader.ReadContentAsDouble();
                        break;
                    case "timezone":
                        TimeZone = reader.Value;
                        break;
                    case "photo_count":
                        PhotoCount = reader.ReadContentAsInt();
                        break;
                    default:
                        Helper.CheckParsingException(reader);
                        break;
                }
            }

            reader.Read();

            while (reader.NodeType != XmlNodeType.EndElement)
            {
                if (reader.NodeType == XmlNodeType.Text)
                {
                    Description = reader.ReadContentAsString();
                }
                else
                {
                    switch (reader.LocalName)
                    {
                        default:
                            Helper.CheckParsingException(reader);
                            break;
                    }
                }
            }

            reader.Read();
        }
Example #23
0
        /// <summary>
        /// Reads all data about an ExtensionInfo from the given XmlReader.
        /// </summary>
        /// <param name="reader">
        /// The <see cref="System.Xml.XmlReader"/> to read the data from.
        /// </param>
        public void ReadXml(System.Xml.XmlReader reader)
        {
            string name = null;
            string author = null;
            Version version = null;
            string classType = null;
            string[] dependencies = null;
            if (reader.NodeType != XmlNodeType.Element || reader.Name != "extension")
            {
                throw new System.Runtime.Serialization.SerializationException("Couldn't load ExtensionInfo, extension tag missing");
            }

            while (reader.MoveToNextAttribute())
            {
                switch (reader.LocalName)
                {
                case "name":
                    name = reader.ReadContentAsString();
                    break;
                case "version":
                    version = new Version(reader.ReadContentAsString());
                    break;
                }
            }

            while (true)
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.Attribute:
                    reader.Read();
                    break;
                case XmlNodeType.Element:
                    switch (reader.Name)
                    {
                    case "class":
                        classType = reader.ReadString();
                        reader.Read();
                        break;
                    case "author":
                        author = reader.ReadString();
                        reader.Read();
                        break;
                    case "assembly":
                        assemblyGuid = new Guid(reader.ReadString());
                        reader.Read();
                        break;
                    case "description":
                        description = reader.ReadString();
                        reader.Read();
                        break;
                    case "dependencies":
                        List<string> deps = new List<string>();
                        bool done = false;
                        while (!done && reader.Read())
                        {
                            //Console.WriteLine(reader.NodeType.ToString() + ": " + reader.Name);
                            switch (reader.NodeType)
                            {
                            case XmlNodeType.Element:
                                if (reader.Name.Equals("dependency"))
                                {
                                    deps.Add(reader.ReadString());
                                }

                                break;
                            case XmlNodeType.EndElement:
                                if (reader.Name == "dependencies")
                                {
                                    reader.Read();
                                    done = true;
                                }

                                break;
                            }
                        }

                        dependencies = deps.ToArray();
                        break;
                    default:
                        reader.Skip();
                        break;
                    }

                    break;
                case XmlNodeType.EndElement:
                    if (reader.Name != "extension") {
                        reader.Read();
                        break;
                    }
                    reader.Read();
                    this.name = name;
                    this.author = author;
                    this.version = version;
                    this.classType = classType;
                    if (dependencies != null)
                    {
                        this.dependencies = new Dependency[dependencies.Length];
                        for (int i = 0; i < dependencies.Length; i++)
                        {
                            this.dependencies[i] = new Dependency(new Guid(dependencies[i]));
                        }
                    }

                    return;
                default:
                    reader.Read();
                    break;
                }
            }
        }