2004-09-10 Tim Coleman <tim@timcoleman.com>
authorTim Coleman <tim@mono-cvs.ximian.com>
Fri, 10 Sep 2004 19:47:45 +0000 (19:47 -0000)
committerTim Coleman <tim@mono-cvs.ximian.com>
Fri, 10 Sep 2004 19:47:45 +0000 (19:47 -0000)
        * AuthenticationModuleElement.cs AuthenticationModuleElementCollection.cs
        * AuthenticationModulesSection.cs BypassElement.cs BypassElementCollection.cs
        * ConnectionManagementElement.cs ConnectionManagementElementCollection.cs
        * ConnectionManagementSection.cs DefaultProxySection.cs
        * HttpCachePolicyElement.cs HttpWebRequestElement.cs
        * Ipv6Element.cs MailSettingsSection.cs ModuleElement.cs
        * NetSectionGroup.cs ProxyElement.cs RequestCachingSection.cs
        * ServicePointManagerElement.cs SettingsSection.cs SmtpElement.cs
        * SocketElement.cs UriParserElement.cs UriParserElementCollection.cs
        * UriParserSection.cs WebRequestModuleElement.cs
        * WebRequestModuleElementCollection.cs WebRequestModulesSection.cs:
                New classes for Fx 2.0

svn path=/trunk/mcs/; revision=33725

28 files changed:
mcs/class/System/System.Net.Configuration/AuthenticationModuleElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/AuthenticationModuleElementCollection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/AuthenticationModulesSection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/BypassElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/BypassElementCollection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/ChangeLog
mcs/class/System/System.Net.Configuration/ConnectionManagementElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/ConnectionManagementElementCollection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/ConnectionManagementSection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/DefaultProxySection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/HttpCachePolicyElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/HttpWebRequestElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/Ipv6Element.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/MailSettingsSection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/ModuleElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/NetSectionGroup.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/ProxyElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/RequestCachingSection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/ServicePointManagerElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/SettingsSection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/SmtpElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/SocketElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/UriParserElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/UriParserElementCollection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/UriParserSection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/WebRequestModuleElement.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/WebRequestModuleElementCollection.cs [new file with mode: 0755]
mcs/class/System/System.Net.Configuration/WebRequestModulesSection.cs [new file with mode: 0755]

diff --git a/mcs/class/System/System.Net.Configuration/AuthenticationModuleElement.cs b/mcs/class/System/System.Net.Configuration/AuthenticationModuleElement.cs
new file mode 100755 (executable)
index 0000000..c95fafa
--- /dev/null
@@ -0,0 +1,78 @@
+//
+// System.Net.Configuration.AuthenticationModuleElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class AuthenticationModuleElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty type = new ConfigurationProperty ("Type", typeof (string), null);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public AuthenticationModuleElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (type);
+               }
+
+               public AuthenticationModuleElement (string typeName)
+                       : this ()
+               {
+                       Type = typeName;
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public string Type {
+                       get { return (string) base [type]; }
+                       set { base [type] = value; }
+               }
+
+               #endregion // Properties
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/AuthenticationModuleElementCollection.cs b/mcs/class/System/System.Net.Configuration/AuthenticationModuleElementCollection.cs
new file mode 100755 (executable)
index 0000000..0eb15d2
--- /dev/null
@@ -0,0 +1,117 @@
+//
+// System.Net.Configuration.AuthenticationModuleElementCollection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class AuthenticationModuleElementCollection : ConfigurationElementCollection
+       {
+               #region Constructors
+
+               [MonoTODO]
+               public AuthenticationModuleElementCollection ()
+               {
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               [MonoTODO]
+               public AuthenticationModuleElement this [int index] {
+                       get { throw new NotImplementedException (); }
+                       set { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public new AuthenticationModuleElement this [string name] {
+                       get { return (AuthenticationModuleElement) base [name]; }
+                       set { base [name] = value; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               public void Add (AuthenticationModuleElement element)
+               {
+                       BaseAdd (element);
+               }
+
+               [MonoTODO]
+               public void Clear ()
+               {
+                       BaseClear ();
+               }
+
+               [MonoTODO]
+               protected override ConfigurationElement CreateNewElement ()
+               {
+                       return new AuthenticationModuleElement ();
+               }
+
+               [MonoTODO]
+               protected override object GetElementKey (ConfigurationElement element)
+               {
+                       if (!(element is AuthenticationModuleElement))
+                               throw new ArgumentException ("element");
+                       throw new NotImplementedException ();
+               }
+
+               public int IndexOf (AuthenticationModuleElement element)
+               {
+                       return BaseIndexOf (element);
+               }
+
+               public void Remove (AuthenticationModuleElement element)
+               {
+                       BaseRemove (element);
+               }
+
+               public void Remove (string name)
+               {
+                       BaseRemove (name);
+               }
+
+               public void RemoveAt (int index)
+               {
+                       BaseRemoveAt (index);
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/AuthenticationModulesSection.cs b/mcs/class/System/System.Net.Configuration/AuthenticationModulesSection.cs
new file mode 100755 (executable)
index 0000000..27c43de
--- /dev/null
@@ -0,0 +1,87 @@
+//
+// System.Net.Configuration.AuthenticationModulesSection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class AuthenticationModulesSection : ConfigurationSection
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty authenticationModules = new ConfigurationProperty ("AuthenticationModules", typeof (AuthenticationModuleElementCollection), new AuthenticationModuleElementCollection ());
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public AuthenticationModulesSection ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (authenticationModules);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public AuthenticationModuleElementCollection AuthenticationModules {
+                       get { return (AuthenticationModuleElementCollection) base [authenticationModules]; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               protected internal override object GetRuntimeObject ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               protected internal override void InitializeDefault ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/BypassElement.cs b/mcs/class/System/System.Net.Configuration/BypassElement.cs
new file mode 100755 (executable)
index 0000000..3378170
--- /dev/null
@@ -0,0 +1,78 @@
+//
+// System.Net.Configuration.BypassElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class BypassElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty address = new ConfigurationProperty ("Address", typeof (string), null);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public BypassElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (address);
+               }
+
+               public BypassElement (string address)
+                       : this ()
+               {
+                       Address = address;
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public string Address {
+                       get { return (string) base [address]; }
+                       set { base [address] = value; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               #endregion // Properties
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/BypassElementCollection.cs b/mcs/class/System/System.Net.Configuration/BypassElementCollection.cs
new file mode 100755 (executable)
index 0000000..a44f96f
--- /dev/null
@@ -0,0 +1,116 @@
+//
+// System.Net.Configuration.BypassElementCollection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class BypassElementCollection : ConfigurationElementCollection
+       {
+               #region Constructors
+
+               [MonoTODO]
+               public BypassElementCollection ()
+               {
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               [MonoTODO]
+               public BypassElement this [int index] {
+                       get { throw new NotImplementedException (); }
+                       set { throw new NotImplementedException (); }
+               }
+
+               public new BypassElement this [string name] {
+                       get { return (BypassElement) base [name]; }
+                       set { base [name] = value; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               public void Add (BypassElement element)
+               {
+                       BaseAdd (element);
+               }
+
+               [MonoTODO]
+               public void Clear ()
+               {
+                       BaseClear ();
+               }
+
+               [MonoTODO]
+               protected override ConfigurationElement CreateNewElement ()
+               {
+                       return new BypassElement ();
+               }
+
+               [MonoTODO]
+               protected override object GetElementKey (ConfigurationElement element)
+               {
+                       if (!(element is BypassElement))
+                               throw new ArgumentException ("element");
+                       throw new NotImplementedException ();
+               }
+
+               public int IndexOf (BypassElement element)
+               {
+                       return BaseIndexOf (element);
+               }
+
+               public void Remove (BypassElement element)
+               {
+                       BaseRemove (element);
+               }
+
+               public void Remove (string name)
+               {
+                       BaseRemove (name);
+               }
+
+               public void RemoveAt (int index)
+               {
+                       BaseRemoveAt (index);
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
index a4b3a614591153ff6ad48a200164ddb50324e310..0c0bb9785e9db33b78273e0a4c961f1dae650d95 100644 (file)
@@ -1,3 +1,18 @@
+2004-09-10  Tim Coleman <tim@timcoleman.com>
+       * AuthenticationModuleElement.cs AuthenticationModuleElementCollection.cs
+       * AuthenticationModulesSection.cs BypassElement.cs BypassElementCollection.cs
+       * ConnectionManagementElement.cs ConnectionManagementElementCollection.cs
+       * ConnectionManagementSection.cs DefaultProxySection.cs
+       * HttpCachePolicyElement.cs HttpWebRequestElement.cs
+       * Ipv6Element.cs MailSettingsSection.cs ModuleElement.cs
+       * NetSectionGroup.cs ProxyElement.cs RequestCachingSection.cs
+       * ServicePointManagerElement.cs SettingsSection.cs SmtpElement.cs
+       * SocketElement.cs UriParserElement.cs UriParserElementCollection.cs
+       * UriParserSection.cs WebRequestModuleElement.cs 
+       * WebRequestModuleElementCollection.cs WebRequestModulesSection.cs:
+               New classes for Fx 2.0
+
+
 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
 
        * DefaultProxyHandler.cs: removed Console.WriteLine's.
diff --git a/mcs/class/System/System.Net.Configuration/ConnectionManagementElement.cs b/mcs/class/System/System.Net.Configuration/ConnectionManagementElement.cs
new file mode 100755 (executable)
index 0000000..31ff40c
--- /dev/null
@@ -0,0 +1,84 @@
+//
+// System.Net.Configuration.ConnectionManagementElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class ConnectionManagementElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty address = new ConfigurationProperty ("Address", typeof (string), null);
+               static ConfigurationProperty maxConnection = new ConfigurationProperty ("MaxConnection", typeof (int), 1);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public ConnectionManagementElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+               }
+
+               public ConnectionManagementElement (string address, int maxConnection)
+                       : this ()
+               {
+                       Address = address;
+                       MaxConnection = maxConnection;
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public string Address {
+                       get { return (string) base [address]; }
+                       set { base [address] = value; }
+               }
+
+               public int MaxConnection {
+                       get { return (int) base [maxConnection]; }
+                       set { base [maxConnection] = value; } 
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               #endregion // Properties
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/ConnectionManagementElementCollection.cs b/mcs/class/System/System.Net.Configuration/ConnectionManagementElementCollection.cs
new file mode 100755 (executable)
index 0000000..a1fd1bd
--- /dev/null
@@ -0,0 +1,116 @@
+//
+// System.Net.Configuration.ConnectionManagementElementCollection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class ConnectionManagementElementCollection : ConfigurationElementCollection
+       {
+               #region Constructors
+
+               [MonoTODO]
+               public ConnectionManagementElementCollection ()
+               {
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               [MonoTODO]
+               public ConnectionManagementElement this [int index] {
+                       get { throw new NotImplementedException (); }
+                       set { throw new NotImplementedException (); }
+               }
+
+               public new ConnectionManagementElement this [string name] {
+                       get { return (ConnectionManagementElement) base [name]; }
+                       set { base [name] = value; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               public void Add (ConnectionManagementElement element)
+               {
+                       BaseAdd (element);
+               }
+
+               [MonoTODO]
+               public void Clear ()
+               {
+                       BaseClear ();
+               }
+
+               [MonoTODO]
+               protected override ConfigurationElement CreateNewElement ()
+               {
+                       return new AuthenticationModuleElement ();
+               }
+
+               [MonoTODO]
+               protected override object GetElementKey (ConfigurationElement element)
+               {
+                       if (!(element is ConnectionManagementElement))
+                               throw new ArgumentException ("element");
+                       throw new NotImplementedException ();
+               }
+
+               public int IndexOf (ConnectionManagementElement element)
+               {
+                       return BaseIndexOf (element);
+               }
+
+               public void Remove (ConnectionManagementElement element)
+               {
+                       BaseRemove (element);
+               }
+
+               public void Remove (string name)
+               {
+                       BaseRemove (name);
+               }
+
+               public void RemoveAt (int index)
+               {
+                       BaseRemoveAt (index);
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/ConnectionManagementSection.cs b/mcs/class/System/System.Net.Configuration/ConnectionManagementSection.cs
new file mode 100755 (executable)
index 0000000..d43c772
--- /dev/null
@@ -0,0 +1,81 @@
+//
+// System.Net.Configuration.ConnectionManagementSection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class ConnectionManagementSection : ConfigurationSection
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty connectionManagement = new ConfigurationProperty ("ConnectionManagement", typeof (ConnectionManagementElementCollection), new ConnectionManagementElementCollection ());
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public ConnectionManagementSection ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (connectionManagement);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public ConnectionManagementElementCollection ConnectionManagement {
+                       get { return (ConnectionManagementElementCollection) base [connectionManagement]; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               protected internal override object GetRuntimeObject ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/DefaultProxySection.cs b/mcs/class/System/System.Net.Configuration/DefaultProxySection.cs
new file mode 100755 (executable)
index 0000000..e47cfe7
--- /dev/null
@@ -0,0 +1,93 @@
+//
+// System.Net.Configuration.DefaultProxySection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class DefaultProxySection : ConfigurationSection
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty bypassList = new ConfigurationProperty ("BypassList", typeof (BypassElementCollection), new BypassElementCollection ());
+               static ConfigurationProperty module = new ConfigurationProperty ("Module", typeof (ModuleElement), new ModuleElement ());
+               static ConfigurationProperty proxy = new ConfigurationProperty ("Proxy", typeof (ProxyElement), new ProxyElement ());
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public DefaultProxySection ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (bypassList);
+                       properties.Add (module);
+                       properties.Add (proxy);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public BypassElementCollection BypassList {
+                       get { return (BypassElementCollection) base [bypassList]; }
+               }
+
+               public ModuleElement Module {
+                       get { return (ModuleElement) base [module]; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public ProxyElement Proxy {
+                       get { return (ProxyElement) base [proxy]; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               protected internal override object GetRuntimeObject ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/HttpCachePolicyElement.cs b/mcs/class/System/System.Net.Configuration/HttpCachePolicyElement.cs
new file mode 100755 (executable)
index 0000000..45e9ba5
--- /dev/null
@@ -0,0 +1,112 @@
+//
+// System.Net.Configuration.HttpCachePolicyElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.Configuration;
+using System.Net.Cache;
+using System.Xml;
+
+namespace System.Net.Configuration 
+{
+       public sealed class HttpCachePolicyElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty maximumAge = new ConfigurationProperty ("MaximumAge", typeof (TimeSpan), TimeSpan.MaxValue);
+               static ConfigurationProperty maximumStale = new ConfigurationProperty ("MaximumStale", typeof (TimeSpan), TimeSpan.MinValue);
+               static ConfigurationProperty minimumFresh = new ConfigurationProperty ("MinimumFresh", typeof (TimeSpan), TimeSpan.MinValue);
+               static ConfigurationProperty policyLevel = new ConfigurationProperty ("PolicyLevel", typeof (HttpRequestCacheLevel), HttpRequestCacheLevel.Default);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public HttpCachePolicyElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (maximumAge);
+                       properties.Add (maximumStale);
+                       properties.Add (minimumFresh);
+                       properties.Add (policyLevel);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public TimeSpan MaximumAge {
+                       get { return (TimeSpan) base [maximumAge]; }
+                       set { base [maximumAge] = value; }
+               }
+
+               public TimeSpan MaximumStale {
+                       get { return (TimeSpan) base [maximumStale]; }
+                       set { base [maximumStale] = value; }
+               }
+
+               public TimeSpan MinimumFresh {
+                       get { return (TimeSpan) base [minimumFresh]; }
+                       set { base [minimumFresh] = value; }
+               }
+
+               public HttpRequestCacheLevel PolicyLevel {
+                       get { return (HttpRequestCacheLevel) base [policyLevel]; }
+                       set { base [policyLevel] = value; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               protected internal override void Deserialize (XmlReader reader, bool serializeCollectionKey)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               protected internal override void Reset (ConfigurationElement parentElement, object context)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/HttpWebRequestElement.cs b/mcs/class/System/System.Net.Configuration/HttpWebRequestElement.cs
new file mode 100755 (executable)
index 0000000..21e2568
--- /dev/null
@@ -0,0 +1,72 @@
+//
+// System.Net.Configuration.HttpWebRequestElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class HttpWebRequestElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty maximumResponseHeadersLength = new ConfigurationProperty ("MaximumResponseHeadersLength", typeof (int), 64);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public HttpWebRequestElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (maximumResponseHeadersLength);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public int MaximumResponseHeadersLength {
+                       get { return (int) base [maximumResponseHeadersLength]; }
+                       set { base [maximumResponseHeadersLength] = value; }
+               }
+
+               #endregion // Properties
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/Ipv6Element.cs b/mcs/class/System/System.Net.Configuration/Ipv6Element.cs
new file mode 100755 (executable)
index 0000000..b271911
--- /dev/null
@@ -0,0 +1,72 @@
+//
+// System.Net.Configuration.Ipv6Element.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class Ipv6Element : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty enabled = new ConfigurationProperty ("Enabled", typeof (bool), false);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public Ipv6Element ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (enabled);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public bool Enabled {
+                       get { return (bool) base [enabled]; }
+                       set { base [enabled] = value; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               #endregion // Properties
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/MailSettingsSection.cs b/mcs/class/System/System.Net.Configuration/MailSettingsSection.cs
new file mode 100755 (executable)
index 0000000..3cd5b9a
--- /dev/null
@@ -0,0 +1,81 @@
+//
+// System.Net.Configuration.MailSettingsSection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class MailSettingsSection : ConfigurationSection
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty smtp = new ConfigurationProperty ("Smtp", typeof (SmtpElement), new SmtpElement ());
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public MailSettingsSection ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (smtp);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public SmtpElement Smtp {
+                       get { return (SmtpElement) base [smtp]; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               protected internal override object GetRuntimeObject ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/ModuleElement.cs b/mcs/class/System/System.Net.Configuration/ModuleElement.cs
new file mode 100755 (executable)
index 0000000..68bead9
--- /dev/null
@@ -0,0 +1,72 @@
+//
+// System.Net.Configuration.ModuleElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class ModuleElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty type = new ConfigurationProperty ("Type", typeof (string), null);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public ModuleElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (type);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public string Type {
+                       get { return (string) base [type]; }
+                       set { base [type] = value; }
+               }
+
+               #endregion // Properties
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/NetSectionGroup.cs b/mcs/class/System/System.Net.Configuration/NetSectionGroup.cs
new file mode 100755 (executable)
index 0000000..221baca
--- /dev/null
@@ -0,0 +1,105 @@
+//
+// System.Net.Configuration.NetSectionGroup.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class NetSectionGroup : ConfigurationSectionGroup
+       {
+               #region Constructors
+
+               [MonoTODO]
+               public NetSectionGroup ()
+               {
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               [MonoTODO]
+               public AuthenticationModulesSection AuthenticationModules {
+                       get { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public ConnectionManagementSection ConnectionManagement {
+                       get { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public DefaultProxySection DefaultProxy {
+                       get { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public MailSettingsSection MailSettings {
+                       get { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public RequestCachingSection RequestCaching {
+                       get { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public SettingsSection Settings {
+                       get { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public UriParserSection UriParser {
+                       get { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public WebRequestModulesSection WebRequestModules {
+                       get { throw new NotImplementedException (); }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               public static NetSectionGroup GetSectionGroup (Configuration config)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/ProxyElement.cs b/mcs/class/System/System.Net.Configuration/ProxyElement.cs
new file mode 100755 (executable)
index 0000000..a58390b
--- /dev/null
@@ -0,0 +1,123 @@
+//
+// System.Net.Configuration.ProxyElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class ProxyElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty bypassOnLocal = new ConfigurationProperty ("BypassOnLocal", typeof (BypassOnLocalValues), BypassOnLocalValues.Default);
+               static ConfigurationProperty proxyAddress = new ConfigurationProperty ("ProxyAddress", typeof (string), null);
+               static ConfigurationProperty scriptDownloadInterval = new ConfigurationProperty ("ScriptDownloadInterval", typeof (TimeSpan), TimeSpan.MinValue);
+               static ConfigurationProperty scriptDownloadTimeout = new ConfigurationProperty ("ScriptDownloadTimeout", typeof (TimeSpan), TimeSpan.MinValue);
+               static ConfigurationProperty useDefaultCredentials = new ConfigurationProperty ("UseDefaultCredentials", typeof (bool), false);
+               static ConfigurationProperty useDefaultCredentialsForScriptDownload = new ConfigurationProperty ("UseDefaultCredentialsForScriptDownload", typeof (bool), false);
+               static ConfigurationProperty useSystemDefault = new ConfigurationProperty ("UseSystemDefault", typeof (bool), true);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               [MonoTODO]
+               public ProxyElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (bypassOnLocal);
+                       properties.Add (proxyAddress);
+                       properties.Add (scriptDownloadInterval);
+                       properties.Add (scriptDownloadTimeout);
+                       properties.Add (useDefaultCredentials);
+                       properties.Add (useDefaultCredentialsForScriptDownload);
+                       properties.Add (useSystemDefault);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public BypassOnLocalValues BypassOnLocal {
+                       get { return (BypassOnLocalValues) base [bypassOnLocal]; }
+                       set { base [bypassOnLocal] = value; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public string ProxyAddress {
+                       get { return (string) base [proxyAddress]; }
+                       set { base [proxyAddress] = value; }
+               }
+
+               public TimeSpan ScriptDownloadInterval {
+                       get { return (TimeSpan) base [scriptDownloadInterval]; }
+                       set { base [scriptDownloadInterval] = value; }
+               }
+
+               public TimeSpan ScriptDownloadTimeout {
+                       get { return (TimeSpan) base [scriptDownloadTimeout]; }
+                       set { base [scriptDownloadTimeout] = value; }
+               }
+
+               public bool UseDefaultCredentials {
+                       get { return (bool) base [useDefaultCredentials]; }
+                       set { base [useDefaultCredentials] = value; }
+               }
+
+               public bool UseDefaultCredentialsForScriptDownload {
+                       get { return (bool) base [useDefaultCredentialsForScriptDownload]; }
+                       set { base [useDefaultCredentialsForScriptDownload] = value; }
+               }
+
+               public bool UseSystemDefault {
+                       get { return (bool) base [useSystemDefault]; }
+                       set { base [useSystemDefault] = value; }
+               }
+
+               #endregion // Properties
+
+               public enum BypassOnLocalValues
+               {
+                       Default = -1,
+                       True = 1,
+                       False = 0
+               }
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/RequestCachingSection.cs b/mcs/class/System/System.Net.Configuration/RequestCachingSection.cs
new file mode 100755 (executable)
index 0000000..28cb29f
--- /dev/null
@@ -0,0 +1,111 @@
+//
+// System.Net.Configuration.RequestCachingSection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.Configuration;
+using System.Net.Cache;
+
+namespace System.Net.Configuration 
+{
+       public sealed class RequestCachingSection : ConfigurationSection
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty defaultHttpCachePolicy = new ConfigurationProperty ("DefaultHttpCachePolicy", typeof (HttpCachePolicyElement), new HttpCachePolicyElement ());
+               static ConfigurationProperty defaultPolicyLevel = new ConfigurationProperty ("DefaultPolicyLevel", typeof (RequestCacheLevel), RequestCacheLevel.BypassCache);
+               static ConfigurationProperty disableAllCaching = new ConfigurationProperty ("DisableAllCaching", typeof (bool), false);
+               static ConfigurationProperty isPrivateCache = new ConfigurationProperty ("IsPrivateCache", typeof (bool), true);
+               static ConfigurationProperty unspecifiedMaximumAge = new ConfigurationProperty ("UnspecifiedMaximumAge", typeof (TimeSpan), new TimeSpan (1, 0, 0, 0));
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public RequestCachingSection ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (defaultHttpCachePolicy);
+                       properties.Add (defaultPolicyLevel);
+                       properties.Add (disableAllCaching);
+                       properties.Add (isPrivateCache);
+                       properties.Add (unspecifiedMaximumAge);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public HttpCachePolicyElement DefaultHttpCachePolicy {
+                       get { return (HttpCachePolicyElement) base [defaultHttpCachePolicy]; }
+               }
+
+               public RequestCacheLevel DefaultPolicyLevel {
+                       get { return (RequestCacheLevel) base [defaultPolicyLevel]; }
+                       set { base [defaultPolicyLevel] = value; }
+               }
+
+               public bool DisableAllCaching {
+                       get { return (bool) base [disableAllCaching]; }
+                       set { base [disableAllCaching] = value; }
+               }
+
+               public bool IsPrivateCache {
+                       get { return (bool) base [isPrivateCache]; }
+                       set { base [isPrivateCache] = value; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public TimeSpan UnspecifiedMaximumAge {
+                       get { return (TimeSpan) base [unspecifiedMaximumAge]; }
+                       set { base [unspecifiedMaximumAge] = value; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               protected internal override object GetRuntimeObject ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/ServicePointManagerElement.cs b/mcs/class/System/System.Net.Configuration/ServicePointManagerElement.cs
new file mode 100755 (executable)
index 0000000..c14a87d
--- /dev/null
@@ -0,0 +1,108 @@
+//
+// System.Net.Configuration.ServicePointManagerElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class ServicePointManagerElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty checkCertificateName = new ConfigurationProperty ("CheckCertificateName", typeof (bool), true);
+               static ConfigurationProperty checkCertificateRevocationList = new ConfigurationProperty ("CheckCertificateRevocationList", typeof (bool), false);
+               static ConfigurationProperty dnsRefreshTimeout = new ConfigurationProperty ("DnsRefreshTimeout", typeof (TimeSpan), new TimeSpan (0, 2, 0));
+               static ConfigurationProperty enableDnsRoundRobin = new ConfigurationProperty ("EnableDnsRoundRobin", typeof (bool), false);
+               static ConfigurationProperty expect100Continue = new ConfigurationProperty ("Expect100Continue", typeof (bool), true);
+               static ConfigurationProperty useNagleAlgorithm = new ConfigurationProperty ("UseNagleAlgorithm", typeof (bool), true);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public ServicePointManagerElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (checkCertificateName);
+                       properties.Add (checkCertificateRevocationList);
+                       properties.Add (dnsRefreshTimeout);
+                       properties.Add (enableDnsRoundRobin);
+                       properties.Add (expect100Continue);
+                       properties.Add (useNagleAlgorithm);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public bool CheckCertificateName {
+                       get { return (bool) base [checkCertificateName]; }
+                       set { base [checkCertificateName] = value; }
+               }
+
+               public bool CheckCertificateRevocationList {
+                       get { return (bool) base [checkCertificateRevocationList]; }
+                       set { base [checkCertificateRevocationList] = value; }
+               }
+
+               public TimeSpan DnsRefreshTimeout {
+                       get { return (TimeSpan) base [dnsRefreshTimeout]; }
+                       set { base [dnsRefreshTimeout] = value; }
+               }
+
+               public bool EnableDnsRoundRobin {
+                       get { return (bool) base [enableDnsRoundRobin]; }
+                       set { base [enableDnsRoundRobin] = value; }
+               }
+
+               public bool Expect100Continue {
+                       get { return (bool) base [expect100Continue]; }
+                       set { base [expect100Continue] = value; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public bool UseNagleAlgorithm {
+                       get { return (bool) base [useNagleAlgorithm]; }
+                       set { base [useNagleAlgorithm] = value; }
+               }
+
+               #endregion // Properties
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/SettingsSection.cs b/mcs/class/System/System.Net.Configuration/SettingsSection.cs
new file mode 100755 (executable)
index 0000000..a29d126
--- /dev/null
@@ -0,0 +1,99 @@
+//
+// System.Net.Configuration.SettingsSection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class SettingsSection : ConfigurationSection
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty httpWebRequest = new ConfigurationProperty ("HttpWebRequest", typeof (HttpWebRequestElement), new HttpWebRequestElement ());
+               static ConfigurationProperty ipv6 = new ConfigurationProperty ("Ipv6", typeof (Ipv6Element), new Ipv6Element ());
+               static ConfigurationProperty servicePointManager = new ConfigurationProperty ("ServicePointManager", typeof (ServicePointManagerElement), new ServicePointManagerElement ());
+               static ConfigurationProperty socket = new ConfigurationProperty ("Socket", typeof (SocketElement), new SocketElement ());
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public SettingsSection ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (httpWebRequest);
+                       properties.Add (ipv6);
+                       properties.Add (servicePointManager);
+                       properties.Add (socket);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public HttpWebRequestElement HttpWebRequest {
+                       get { return (HttpWebRequestElement) base [httpWebRequest]; }
+               }
+
+               public Ipv6Element Ipv6 {
+                       get { return (Ipv6Element) base [ipv6]; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public ServicePointManagerElement ServicePointManager {
+                       get { return (ServicePointManagerElement) base [servicePointManager]; }
+               }
+
+               public SocketElement Socket {
+                       get { return (SocketElement) base [socket]; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               protected internal override object GetRuntimeObject ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/SmtpElement.cs b/mcs/class/System/System.Net.Configuration/SmtpElement.cs
new file mode 100755 (executable)
index 0000000..43f1fdc
--- /dev/null
@@ -0,0 +1,105 @@
+//
+// System.Net.Configuration.SmtpElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class SmtpElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty defaultCredentials = new ConfigurationProperty ("DefaultCredentials", typeof (bool), false);
+               static ConfigurationProperty host = new ConfigurationProperty ("Host", typeof (string), null);
+               static ConfigurationProperty password = new ConfigurationProperty ("Password", typeof (string), null);
+               static ConfigurationProperty port = new ConfigurationProperty ("Port", typeof (int), 25);
+               static ConfigurationProperty userName = new ConfigurationProperty ("UserName", typeof (string), null);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public SmtpElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public bool DefaultCredentials {
+                       get { return (bool) base [defaultCredentials]; }
+                       set { base [defaultCredentials] = value; }
+               }
+
+               public string Host {
+                       get { return (string) base [host]; }
+                       set { base [host] = value; }
+               }
+
+               public string Password {
+                       get { return (string) base [password]; }
+                       set { base [password] = value; }
+               }
+
+               public int Port {
+                       get { return (int) base [port]; }
+                       set { base [port] = value; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public string UserName {
+                       get { return (string) base [userName]; }
+                       set { base [userName] = value; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               protected override void ValidateRequiredProperties (ConfigurationPropertyCollection props, bool serializeCollectionKey)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/SocketElement.cs b/mcs/class/System/System.Net.Configuration/SocketElement.cs
new file mode 100755 (executable)
index 0000000..1346aeb
--- /dev/null
@@ -0,0 +1,79 @@
+//
+// System.Net.Configuration.SocketElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class SocketElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty alwaysUseCompletionPortsForAccept = new ConfigurationProperty ("AlwaysUseCompletionPortsForAccept", typeof (bool), false);
+               static ConfigurationProperty alwaysUseCompletionPortsForConnect = new ConfigurationProperty ("AlwaysUseCompletionPortsForConnect", typeof (bool), false);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public SocketElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (alwaysUseCompletionPortsForAccept);
+                       properties.Add (alwaysUseCompletionPortsForConnect);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public bool AlwaysUseCompletionPortsForAccept {
+                       get { return (bool) base [alwaysUseCompletionPortsForAccept]; }
+                       set { base [alwaysUseCompletionPortsForAccept] = value; }
+               }
+
+               public bool AlwaysUseCompletionPortsForConnect {
+                       get { return (bool) base [alwaysUseCompletionPortsForConnect]; }
+                       set { base [alwaysUseCompletionPortsForConnect] = value; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               #endregion // Properties
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/UriParserElement.cs b/mcs/class/System/System.Net.Configuration/UriParserElement.cs
new file mode 100755 (executable)
index 0000000..778be50
--- /dev/null
@@ -0,0 +1,93 @@
+//
+// System.Net.Configuration.UriParserElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class UriParserElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty baseSchemeName = new ConfigurationProperty ("BaseSchemeName", typeof (string), null);
+               static ConfigurationProperty defaultSchemePort = new ConfigurationProperty ("DefaultSchemePort", typeof (int), -1);
+               static ConfigurationProperty schemeName = new ConfigurationProperty ("SchemeName", typeof (string), null);
+               static ConfigurationProperty schemeParser = new ConfigurationProperty ("SchemeParser", typeof (string), null);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public UriParserElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (baseSchemeName);
+                       properties.Add (defaultSchemePort);
+                       properties.Add (schemeName);
+                       properties.Add (schemeParser);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public string BaseSchemeName {
+                       get { return (string) base [baseSchemeName]; }
+                       set { base [baseSchemeName] = value; }
+               }
+
+               public int DefaultSchemePort {
+                       get { return (int) base [defaultSchemePort]; }
+                       set { base [defaultSchemePort] = value; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public string SchemeName {
+                       get { return (string) base [schemeName]; }
+                       set { base [schemeName] = value; }
+               }
+
+               public string SchemeParser {
+                       get { return (string) base [schemeParser]; }
+                       set { base [schemeParser] = value; }
+               }
+
+               #endregion // Properties
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/UriParserElementCollection.cs b/mcs/class/System/System.Net.Configuration/UriParserElementCollection.cs
new file mode 100755 (executable)
index 0000000..9123a59
--- /dev/null
@@ -0,0 +1,125 @@
+//
+// System.Net.Configuration.UriParserElementCollection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class UriParserElementCollection : ConfigurationElementCollection
+       {
+               #region Constructors
+
+               [MonoTODO]
+               public UriParserElementCollection ()
+               {
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               protected override ConfigurationElementCollectionType CollectionType {
+                       get { return ConfigurationElementCollectionType.BasicMap; }
+               }
+
+               protected override string ElementName {
+                       get { return "registerScheme"; }
+               }
+
+               [MonoTODO]
+               public UriParserElement this [int index] {
+                       get { throw new NotImplementedException (); }
+                       set { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public new UriParserElement this [string name] {
+                       get { return (UriParserElement) base [name]; }
+                       set { base [name] = value; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               public void Add (UriParserElement element)
+               {
+                       BaseAdd (element);
+               }
+
+               [MonoTODO]
+               public void Clear ()
+               {
+                       BaseClear ();
+               }
+
+               [MonoTODO]
+               protected override ConfigurationElement CreateNewElement ()
+               {
+                       return new UriParserElement ();
+               }
+
+               [MonoTODO]
+               protected override object GetElementKey (ConfigurationElement element)
+               {
+                       if (!(element is UriParserElement))
+                               throw new ArgumentException ("element");
+                       throw new NotImplementedException ();
+               }
+
+               public int IndexOf (UriParserElement element)
+               {
+                       return BaseIndexOf (element);
+               }
+
+               public void Remove (UriParserElement element)
+               {
+                       BaseRemove (element);
+               }
+
+               public void Remove (string name)
+               {
+                       BaseRemove (name);
+               }
+
+               public void RemoveAt (int index)
+               {
+                       BaseRemoveAt (index);
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/UriParserSection.cs b/mcs/class/System/System.Net.Configuration/UriParserSection.cs
new file mode 100755 (executable)
index 0000000..d7e1628
--- /dev/null
@@ -0,0 +1,81 @@
+//
+// System.Net.Configuration.UriParserSection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class UriParserSection : ConfigurationSection
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty uriParsers = new ConfigurationProperty ("UriParsers", typeof (UriParserElementCollection), new UriParserElementCollection ());
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public UriParserSection ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (uriParsers);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public UriParserElementCollection UriParsers {
+                       get { return (UriParserElementCollection) base [uriParsers]; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               protected internal override object GetRuntimeObject ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/WebRequestModuleElement.cs b/mcs/class/System/System.Net.Configuration/WebRequestModuleElement.cs
new file mode 100755 (executable)
index 0000000..a4eb9e6
--- /dev/null
@@ -0,0 +1,91 @@
+//
+// System.Net.Configuration.WebRequestModuleElement.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class WebRequestModuleElement : ConfigurationElement
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty prefix = new ConfigurationProperty ("Prefix", typeof (string), null);
+               static ConfigurationProperty type = new ConfigurationProperty ("Type", typeof (string), null);
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public WebRequestModuleElement ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (prefix);
+                       properties.Add (type);
+               }
+
+               public WebRequestModuleElement (string prefix, string type)
+               {
+                       base [type] = type;
+                       Prefix = prefix;
+               }
+
+               public WebRequestModuleElement (string prefix, Type type)
+                       : this (prefix, type.FullName)
+               {
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public string Prefix {
+                       get { return (string) base [prefix]; }
+                       set { base [prefix] = value; }
+               }
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public Type Type {
+                       get { return Type.GetType ((string) base [type]); }
+                       set { base [type] = value.FullName; }
+               }
+
+               #endregion // Properties
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/WebRequestModuleElementCollection.cs b/mcs/class/System/System.Net.Configuration/WebRequestModuleElementCollection.cs
new file mode 100755 (executable)
index 0000000..d181eba
--- /dev/null
@@ -0,0 +1,117 @@
+//
+// System.Net.Configuration.WebRequestModuleElementCollection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class WebRequestModuleElementCollection : ConfigurationElementCollection
+       {
+               #region Constructors
+
+               [MonoTODO]
+               public WebRequestModuleElementCollection ()
+               {
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               [MonoTODO]
+               public WebRequestModuleElementCollection this [int index] {
+                       get { throw new NotImplementedException (); }
+                       set { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO]
+               public new WebRequestModuleElementCollection this [string name] {
+                       get { return (WebRequestModuleElementCollection) base [name]; }
+                       set { base [name] = value; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               public void Add (WebRequestModuleElementCollection element)
+               {
+                       BaseAdd (element);
+               }
+
+               [MonoTODO]
+               public void Clear ()
+               {
+                       BaseClear ();
+               }
+
+               [MonoTODO]
+               protected override ConfigurationElement CreateNewElement ()
+               {
+                       return new WebRequestModuleElementCollection ();
+               }
+
+               [MonoTODO]
+               protected override object GetElementKey (ConfigurationElement element)
+               {
+                       if (!(element is WebRequestModuleElementCollection))
+                               throw new ArgumentException ("element");
+                       throw new NotImplementedException ();
+               }
+
+               public int IndexOf (WebRequestModuleElementCollection element)
+               {
+                       return BaseIndexOf (element);
+               }
+
+               public void Remove (WebRequestModuleElementCollection element)
+               {
+                       BaseRemove (element);
+               }
+
+               public void Remove (string name)
+               {
+                       BaseRemove (name);
+               }
+
+               public void RemoveAt (int index)
+               {
+                       BaseRemoveAt (index);
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif
diff --git a/mcs/class/System/System.Net.Configuration/WebRequestModulesSection.cs b/mcs/class/System/System.Net.Configuration/WebRequestModulesSection.cs
new file mode 100755 (executable)
index 0000000..0581c29
--- /dev/null
@@ -0,0 +1,87 @@
+//
+// System.Net.Configuration.WebRequestModulesSection.cs
+//
+// Authors:
+//     Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2004
+// (c) 2004 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System.Configuration;
+
+namespace System.Net.Configuration 
+{
+       public sealed class WebRequestModulesSection : ConfigurationSection
+       {
+               #region Fields
+
+               ConfigurationPropertyCollection properties;
+               static ConfigurationProperty webRequestModules = new ConfigurationProperty ("WebRequestModules", typeof (WebRequestModuleElementCollection), new WebRequestModuleElementCollection ());
+
+               #endregion // Fields
+
+               #region Constructors
+
+               public WebRequestModulesSection ()
+               {
+                       properties = new ConfigurationPropertyCollection ();
+                       properties.Add (webRequestModules);
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               protected internal override ConfigurationPropertyCollection Properties {
+                       get { return properties; }
+               }
+
+               public WebRequestModuleElementCollection WebRequestModules {
+                       get { return (WebRequestModuleElementCollection) base [webRequestModules]; }
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               [MonoTODO]
+               protected internal override object GetRuntimeObject ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO]
+               protected internal override void InitializeDefault ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               #endregion // Methods
+       }
+}
+
+#endif