Merge pull request #820 from brendanzagaeski/master
[mono.git] / mcs / class / System.Net.Http / System.Net.Http.Headers / MediaTypeHeaderValue.cs
index 5379a6099f19716205de8555eef03b4b1723c293..296010aa2ad5687ccc1487e963398122c412ec58 100644 (file)
@@ -33,7 +33,7 @@ namespace System.Net.Http.Headers
        public class MediaTypeHeaderValue : ICloneable
        {
                internal List<NameValueHeaderValue> parameters;
-               string media_type;
+               internal string media_type;
 
                public MediaTypeHeaderValue (string mediaType)
                {
@@ -150,7 +150,8 @@ namespace System.Net.Http.Headers
 
                        switch (token.Value.Kind) {
                        case Token.Type.SeparatorSemicolon:
-                               if (!NameValueHeaderValue.TryParseParameters (lexer, out parameters))
+                               Token t;
+                               if (!NameValueHeaderValue.TryParseParameters (lexer, out parameters, out t) || t != Token.Type.End)
                                        return false;
                                break;
                        case Token.Type.End:
@@ -167,37 +168,7 @@ namespace System.Net.Http.Headers
                        return true;
                }
 
-               internal static bool TryParse<T> (string input, out T parsedValue, Func<T> factory) where T : MediaTypeHeaderValue
-               {
-                       parsedValue = null;
-
-                       var lexer = new Lexer (input);
-
-                       string media;
-                       List<NameValueHeaderValue> parameters = null;
-                       var token = TryParseMediaType (lexer, out media);
-                       if (token == null)
-                               return false;
-
-                       switch (token.Value.Kind) {
-                       case Token.Type.SeparatorSemicolon:
-                               if (!NameValueHeaderValue.TryParseParameters (lexer, out parameters))
-                                       return false;
-                               break;
-                       case Token.Type.End:
-                               break;
-                       default:
-                               return false;
-                       }
-
-                       parsedValue = factory ();
-                       parsedValue.media_type = media;
-                       parsedValue.parameters = parameters;
-
-                       return true;
-               }
-
-               static Token? TryParseMediaType (Lexer lexer, out string media)
+               internal static Token? TryParseMediaType (Lexer lexer, out string media)
                {
                        media = null;