internal void WriteXml (XmlWriter writer, DiscoveryVersion version)
{
if (writer == null)
throw new ArgumentNullException ("writer");
// standard members
writer.WriteStartElement ("d", "Types", version.Namespace);
int p = 0;
foreach (var qname in ContractTypeNames)
if (writer.LookupPrefix (qname.Namespace) == null)
writer.WriteAttributeString ("xmlns", "p" + p++, "http://www.w3.org/2000/xmlns/", qname.Namespace);
writer.WriteValue (ContractTypeNames);
writer.WriteEndElement ();
writer.WriteStartElement ("Scopes", version.Namespace);
if (ScopeMatchBy != null) {
writer.WriteStartAttribute ("MatchBy");
writer.WriteValue (ScopeMatchBy);
writer.WriteEndAttribute ();
}
writer.WriteValue (Scopes);
writer.WriteEndElement ();
// non-standard members
if (MaxResults != default_max_results) {
writer.WriteStartElement ("MaxResults", SerializationNS);
writer.WriteValue (MaxResults);
writer.WriteEndElement ();
}
writer.WriteStartElement ("Duration", SerializationNS);
writer.WriteValue (Duration);
writer.WriteEndElement ();
foreach (var ext in Extensions)
ext.WriteTo (writer);
}