[System]: WebRequest.GetSystemProxy(): Return custom proxy for monodroid.
[mono.git] / mcs / class / System / System.Net / WebHeaderCollection.cs
index c9b7ee2b03da1a363ce89a5706974f77c9f4f7b4..a2516b0cc39bfa47a5629f32def08a9938fb1e01 100644 (file)
@@ -44,13 +44,9 @@ using System.Text;
     
 namespace System.Net 
 {
-#if MOONLIGHT
-       internal class WebHeaderCollection : NameValueCollection, ISerializable {
-#else
        [Serializable]
        [ComVisible(true)]
        public class WebHeaderCollection : NameValueCollection, ISerializable {
-#endif
                [Flags]
                internal enum HeaderInfo
                {
@@ -181,10 +177,16 @@ namespace System.Net
                                headerValue = headerValue.Trim ();
                        if (!IsHeaderValue (headerValue))
                                throw new ArgumentException ("invalid header value: " + headerValue, "headerValue");
+                       
+                       AddValue (headerName, headerValue);
+               }
+                       
+               internal void AddValue (string headerName, string headerValue)
+               {
                        base.Add (headerName, headerValue);                     
                }
 
-               public override string [] GetValues (string header)
+               internal string [] GetValues_internal (string header, bool split)
                {
                        if (header == null)
                                throw new ArgumentNullException ("header");
@@ -193,7 +195,7 @@ namespace System.Net
                        if (values == null || values.Length == 0)
                                return null;
 
-                       if (IsMultiValue (header)) {
+                       if (split && IsMultiValue (header)) {
                                List<string> separated = null;
                                foreach (var value in values) {
                                        if (value.IndexOf (',') < 0)
@@ -226,6 +228,11 @@ namespace System.Net
                        return values;
                }
 
+               public override string [] GetValues (string header)
+               {
+                       return GetValues_internal (header, true);
+               }
+
                public override string[] GetValues (int index)
                {
                        string[] values = base.GetValues (index);