public int Compare(TypeWithQValue x, TypeWithQValue y) { if (x == null) { throw new ArgumentNullException("x"); } if (y == null) { throw new ArgumentNullException("y"); } if (defective) { // When browser is defective we have to give precedence Html over XML bool isXHtml = KnownMimeTypes.HtmlTypes().Contains(x.Name, StringComparer.OrdinalIgnoreCase); bool isXXml = KnownMimeTypes.XmlTypes().Contains(x.Name, StringComparer.OrdinalIgnoreCase); bool isYHtml = KnownMimeTypes.HtmlTypes().Contains(y.Name, StringComparer.OrdinalIgnoreCase); bool isYXml = KnownMimeTypes.XmlTypes().Contains(y.Name, StringComparer.OrdinalIgnoreCase); if (isXHtml && isYXml) { return(-1); } if (isXXml && isYHtml) { return(1); } } return(x.Value == y.Value ? x.Ordinal.CompareTo(y.Ordinal) : y.Value.CompareTo(x.Value)); }
/// <summary> /// Initializes a new instance of the <see cref="XmlResponder"/> class. /// </summary> public XmlResponder() { SupportedFormat = "xml"; ContentType = KnownMimeTypes.XmlTypes()[0]; foreach (string mimeType in KnownMimeTypes.XmlTypes()) { SupportedMimeTypes.Add(mimeType); } }