public SilverlightClientConfiguration Load (XmlReader reader) { var ret = new SilverlightClientConfiguration (); ret.Bindings = new BindingsConfiguration (); ret.Client = new ClientConfiguration (); reader.MoveToContent (); if (reader.IsEmptyElement) return ret; reader.ReadStartElement ("configuration"); for (reader.MoveToContent (); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent ()) { if (reader.NodeType != XmlNodeType.Element || reader.LocalName != "system.serviceModel" || reader.IsEmptyElement) { reader.Skip (); continue; } // in <system.serviceModel> reader.ReadStartElement (); for (reader.MoveToContent (); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent ()) { if (reader.NodeType != XmlNodeType.Element || reader.IsEmptyElement) { reader.Skip (); continue; } switch (reader.LocalName) { case "bindings": reader.ReadStartElement (); for (reader.MoveToContent (); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent ()) { if (reader.NodeType != XmlNodeType.Element || reader.IsEmptyElement) { reader.Skip (); continue; } switch (reader.LocalName) { case "customBinding": reader.ReadStartElement (); for (reader.MoveToContent (); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent ()) { if (reader.NodeType != XmlNodeType.Element || reader.LocalName != "binding") { reader.Skip (); continue; } ret.Bindings.CustomBinding.Add (ReadCustomBinding (reader)); } reader.ReadEndElement (); break; case "basicHttpBinding": reader.ReadStartElement (); for (reader.MoveToContent (); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent ()) { if (reader.NodeType != XmlNodeType.Element || reader.LocalName != "binding") { reader.Skip (); continue; } ret.Bindings.BasicHttpBinding.Add (ReadBasicHttpBinding (reader)); } reader.ReadEndElement (); break; } } reader.ReadEndElement (); break; case "client": reader.ReadStartElement (); for (reader.MoveToContent (); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent ()) { if (reader.NodeType != XmlNodeType.Element || reader.LocalName != "endpoint") { reader.Skip (); continue; } ret.Client.Endpoints.Add (ReadEndpoint (reader)); } reader.ReadEndElement (); break; } } reader.ReadEndElement (); // out <system.serviceModel> } reader.ReadEndElement (); // out <configuration> return ret; }
public SilverlightClientConfiguration Load(XmlReader reader) { var ret = new SilverlightClientConfiguration(); ret.Bindings = new BindingsConfiguration(); ret.Client = new ClientConfiguration(); reader.MoveToContent(); if (reader.IsEmptyElement) { return(ret); } reader.ReadStartElement("configuration"); for (reader.MoveToContent(); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent()) { if (reader.NodeType != XmlNodeType.Element || reader.LocalName != "system.serviceModel" || reader.IsEmptyElement) { reader.Skip(); continue; } // in <system.serviceModel> reader.ReadStartElement(); for (reader.MoveToContent(); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent()) { if (reader.NodeType != XmlNodeType.Element || reader.IsEmptyElement) { reader.Skip(); continue; } switch (reader.LocalName) { case "bindings": reader.ReadStartElement(); for (reader.MoveToContent(); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent()) { if (reader.NodeType != XmlNodeType.Element || reader.IsEmptyElement) { reader.Skip(); continue; } switch (reader.LocalName) { case "customBinding": reader.ReadStartElement(); for (reader.MoveToContent(); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent()) { if (reader.NodeType != XmlNodeType.Element || reader.LocalName != "binding") { reader.Skip(); continue; } ret.Bindings.CustomBinding.Add(ReadCustomBinding(reader)); } reader.ReadEndElement(); break; case "basicHttpBinding": reader.ReadStartElement(); for (reader.MoveToContent(); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent()) { if (reader.NodeType != XmlNodeType.Element || reader.LocalName != "binding") { reader.Skip(); continue; } ret.Bindings.BasicHttpBinding.Add(ReadBasicHttpBinding(reader)); } reader.ReadEndElement(); break; } } reader.ReadEndElement(); break; case "client": reader.ReadStartElement(); for (reader.MoveToContent(); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent()) { if (reader.NodeType != XmlNodeType.Element || reader.LocalName != "endpoint") { reader.Skip(); continue; } ret.Client.Endpoints.Add(ReadEndpoint(reader)); } reader.ReadEndElement(); break; } } reader.ReadEndElement(); // out <system.serviceModel> } reader.ReadEndElement(); // out <configuration> return(ret); }