Merge pull request #1179 from ludovic-henry/pr25-threadpool
[mono.git] / mcs / class / System.Web / System.Web.Security / MembershipUserCollection.cs
index 03adfd89aa63b9f3ca38b95d3d0449ca9c7eaddd..61d486345c393eb1cff95544ffecae1845b458e9 100644 (file)
@@ -5,8 +5,7 @@
 //     Ben Maurer (bmaurer@users.sourceforge.net)
 //
 // (C) 2003 Ben Maurer
-//
-
+// Copyright (C) 2005-2010 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_2_0
 using System.Collections;
+using System.Runtime.CompilerServices;
 using System.Web.UI;
-using System;
 
 namespace System.Web.Security
 {
+#if NET_4_0
+       [TypeForwardedFrom ("System.Web, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a")]
+#endif
        [Serializable]
-       public class MembershipUserCollection : ICollection
+       public sealed class MembershipUserCollection : ICollection
        {
                public MembershipUserCollection ()
                {
@@ -44,6 +45,9 @@ namespace System.Web.Security
                
                public void Add (MembershipUser user)
                {
+                       if (user == null)
+                               throw new ArgumentNullException ("user");
+
                        CheckNotReadOnly ();
                        store.Add (user.UserName, user);
                }
@@ -56,12 +60,12 @@ namespace System.Web.Security
                
                void ICollection.CopyTo (Array array, int index)
                {
-                       store.CopyTo (array, index);
+                       store.Values.CopyTo (array, index);
                }
                
                public void CopyTo (MembershipUser[] array, int index)
                {
-                       store.CopyTo (array, index);
+                       store.Values.CopyTo (array, index);
                }
                
                public IEnumerator GetEnumerator ()
@@ -99,12 +103,12 @@ namespace System.Web.Security
                void CheckNotReadOnly ()
                {
                        if (readOnly)
-                               throw new InvalidOperationException ();
+                               throw new NotSupportedException ();
                }
                
                KeyedList store = new KeyedList ();
                bool readOnly = false;
        }
 }
-#endif
+