1 // 2 // System.Web.WebROCollection 3 // 4 // Authors: 5 // Gonzalo Paniagua Javier (gonzalo@novell.com) 6 // 7 // (c) 2005-2009 Novell, Inc. (http://www.novell.com) 8 // Copyright 2012 Xamarin, Inc (http://xamarin.com) 9 // 10 // 11 // Permission is hereby granted, free of charge, to any person obtaining 12 // a copy of this software and associated documentation files (the 13 // "Software"), to deal in the Software without restriction, including 14 // without limitation the rights to use, copy, modify, merge, publish, 15 // distribute, sublicense, and/or sell copies of the Software, and to 16 // permit persons to whom the Software is furnished to do so, subject to 17 // the following conditions: 18 // 19 // The above copyright notice and this permission notice shall be 20 // included in all copies or substantial portions of the Software. 21 // 22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 // 30 using System.Collections; 31 using System.Collections.Specialized; 32 using System.Text; 33 using System.Web.Util; 34 35 namespace System.Web 36 { 37 class WebROCollection : NameValueCollection 38 { 39 bool got_id; 40 int id; 41 WebROCollection()42 public WebROCollection () : base (SecureHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant) { } 43 public bool GotID { 44 get { return got_id; } 45 } 46 47 public int ID { 48 get { return id; } 49 set { 50 got_id = true; 51 id = value; 52 } 53 } Protect()54 public void Protect () 55 { 56 IsReadOnly = true; 57 } 58 Unprotect()59 public void Unprotect () 60 { 61 IsReadOnly = false; 62 } 63 ToString()64 public override string ToString () 65 { 66 StringBuilder result = new StringBuilder (); 67 foreach (string key in AllKeys) { 68 if (result.Length > 0) 69 result.Append ('&'); 70 71 if (key != null && key.Length > 0){ 72 result.Append (key); 73 result.Append ('='); 74 } 75 result.Append (Get (key)); 76 } 77 78 return result.ToString (); 79 } 80 } 81 } 82