* SingleTagSectionHandler.cs: Added.
* DictionarySectionHandler.cs: Added.
* NameValueSectionHandler.cs: Compile errors are now fixed.
* IgnoreSectionHandler.cs: Compile errors are now fixed.
* ConfigurationSettings.cs: Added Implementation code for the entire class.
Note the LAMESPEC: in GetConfig().
svn path=/trunk/mcs/; revision=601
-//
-// System.Configuration.ConfigurationException.cs
-//
-// Author:
-// Christopher Podurgiel (cpodurgiel@msn.com)
-//
-// (C) Ximian, Inc. http://www.ximian.com
-//
-
-using System;
-using System.Xml;
-
-namespace System.Configuration
-{
-
- /// <summary>
- /// ConfigurationException class.
- /// </summary>
- /// <remarks>
- /// Longer description
- /// </remarks>
- public class ConfigurationException : SystemException
- {
-
- private static string _stringBareMessage;
- private static string _stringFilename;
- private static int _intLine;
- private static string _stringMessage;
-
- /// <summary>
- /// ConfigurationException Constructor.
- /// </summary>
- public ConfigurationException ()
- {
- _stringBareMessage = null;
- _stringFilename = null;
- _intLine = 0;
- _stringMessage = null;
- }
-
- /// <summary>
- /// ConfigurationException Constructor.
- /// </summary>
- public ConfigurationException (string message)
- {
- _stringBareMessage = message;
- _stringFilename = null;
- _intLine = 0;
- _stringMessage = null;
- }
-
- /// <summary>
- /// ConfigurationException Constructor.
- /// </summary>
- public ConfigurationException (string message, Exception inner)
- {
- _stringBareMessage = message + " " + inner.ToString();
- _stringFilename = null;
- _intLine = 0;
- _stringMessage = null;
- }
-
- /// <summary>
- /// ConfigurationException Constructor.
- /// </summary>
- public ConfigurationException (string message, XmlNode node)
- {
- _stringBareMessage = message;
- _stringFilename = GetXmlNodeFilename(node);
- _intLine = GetXmlNodeLineNumber(node);
- _stringMessage = _stringFilename + " " + _intLine;
- }
-
- /// <summary>
- /// ConfigurationException Constructor.
- /// </summary>
- public ConfigurationException (string message, Exception inner, XmlNode node)
- {
- _stringBareMessage = message + " " + inner.ToString();
- _stringFilename = GetXmlNodeFilename(node);
- _intLine = GetXmlNodeLineNumber(node);
- _stringMessage = _stringFilename + " " + _intLine;
- }
-
- /// <summary>
- /// ConfigurationException Constructor.
- /// </summary>
- public ConfigurationException (string message, string filename, int line)
- {
- _stringBareMessage = message;
- _stringFilename = filename;
- _intLine = line;
- _stringMessage = _stringFilename + " " + _intLine;
- }
-
- /// <summary>
- /// ConfigurationException Constructor.
- /// </summary>
- public ConfigurationException (string message, Exception inner, string filename, int line)
- {
- _stringBareMessage = message + " " + inner.ToString();
- _stringFilename = filename;
- _intLine = line;
- _stringMessage = _stringFilename + " " + _intLine;
- }
-
-
-
- /// <summary>
- /// Returns the name of the file containing the configuration section node.
- /// </summary>
- /// <param name="node"></param>
- /// <returns></returns>
- public static string GetXmlNodeFilename(XmlNode node)
- {
- _stringFilename = node.OwnerDocument.Name;
- return _stringFilename;
- }
-
- /// <summary>
- /// Returns the line number containing the configuration section node.
- /// </summary>
- /// <param name="node"></param>
- /// <returns></returns>
- public static int GetXmlNodeLineNumber(XmlNode node)
- {
-
- //FIXME: not sure how this should work.
- return 0;
- }
-
-
- /// <summary>
- /// Gets the base error message.
- /// </summary>
- public string BareMessage
- {
- get
- {
- return _stringBareMessage;
- }
- }
-
- /// <summary>
- /// Gets the name of the configuration file where the error occurred.
- /// </summary>
- public string Filename
- {
- get
- {
- return _stringFilename;
- }
- }
-
- /// <summary>
- /// Returns the line number where the error occurred.
- /// </summary>
- public int Line
- {
- get
- {
- return _intLine;
- }
- }
-
- /// <summary>
- /// Gets a string containing the concatenated file name and line number where the error occurred.
- /// </summary>
- public override string Message
- {
- get
- {
- return _stringMessage;
- }
- }
- }
-}
-
-
+//\r
+// System.Configuration.ConfigurationException.cs\r
+//\r
+// Author:\r
+// Christopher Podurgiel (cpodurgiel@msn.com)\r
+//\r
+// (C) Chris Podurgiel\r
+//\r
+\r
+using System;\r
+using System.Xml;\r
+\r
+namespace System.Configuration \r
+{\r
+\r
+ /// <summary>\r
+ /// ConfigurationException class.\r
+ /// </summary>\r
+ /// <remarks>\r
+ /// Longer description\r
+ /// </remarks>\r
+ public class ConfigurationException : SystemException\r
+ {\r
+ \r
+ private static string _stringBareMessage;\r
+ private static string _stringFilename;\r
+ private static int _intLine;\r
+ private static string _stringMessage;\r
+\r
+ /// <summary>\r
+ /// ConfigurationException Constructor.\r
+ /// </summary>\r
+ public ConfigurationException ()\r
+ {\r
+ _stringBareMessage = null;\r
+ _stringFilename = null;\r
+ _intLine = 0;\r
+ _stringMessage = null; \r
+ }\r
+ \r
+ /// <summary>\r
+ /// ConfigurationException Constructor.\r
+ /// </summary>\r
+ public ConfigurationException (string message)\r
+ {\r
+ _stringBareMessage = message;\r
+ _stringFilename = null;\r
+ _intLine = 0;\r
+ _stringMessage = null;\r
+ }\r
+\r
+ /// <summary>\r
+ /// ConfigurationException Constructor.\r
+ /// </summary>\r
+ public ConfigurationException (string message, Exception inner)\r
+ {\r
+ _stringBareMessage = message + " " + inner.ToString();\r
+ _stringFilename = null;\r
+ _intLine = 0;\r
+ _stringMessage = null; \r
+ }\r
+\r
+ /// <summary>\r
+ /// ConfigurationException Constructor.\r
+ /// </summary>\r
+ public ConfigurationException (string message, XmlNode node)\r
+ {\r
+ _stringBareMessage = message;\r
+ _stringFilename = GetXmlNodeFilename(node);\r
+ _intLine = GetXmlNodeLineNumber(node);\r
+ _stringMessage = _stringFilename + " " + _intLine;\r
+ }\r
+\r
+ /// <summary>\r
+ /// ConfigurationException Constructor.\r
+ /// </summary>\r
+ public ConfigurationException (string message, Exception inner, XmlNode node)\r
+ {\r
+ _stringBareMessage = message + " " + inner.ToString();\r
+ _stringFilename = GetXmlNodeFilename(node);\r
+ _intLine = GetXmlNodeLineNumber(node);\r
+ _stringMessage = _stringFilename + " " + _intLine;\r
+ }\r
+\r
+ /// <summary>\r
+ /// ConfigurationException Constructor.\r
+ /// </summary>\r
+ public ConfigurationException (string message, string filename, int line)\r
+ {\r
+ _stringBareMessage = message;\r
+ _stringFilename = filename;\r
+ _intLine = line;\r
+ _stringMessage = _stringFilename + " " + _intLine;\r
+ }\r
+\r
+ /// <summary>\r
+ /// ConfigurationException Constructor.\r
+ /// </summary>\r
+ public ConfigurationException (string message, Exception inner, string filename, int line)\r
+ {\r
+ _stringBareMessage = message + " " + inner.ToString();\r
+ _stringFilename = filename;\r
+ _intLine = line;\r
+ _stringMessage = _stringFilename + " " + _intLine;\r
+ }\r
+\r
+\r
+ \r
+ /// <summary>\r
+ /// Returns the name of the file containing the configuration section node.\r
+ /// </summary>\r
+ /// <param name="node"></param>\r
+ /// <returns></returns>\r
+ public static string GetXmlNodeFilename(XmlNode node)\r
+ {\r
+ _stringFilename = node.OwnerDocument.Name;\r
+ return _stringFilename;\r
+ }\r
+\r
+ /// <summary>\r
+ /// Returns the line number containing the configuration section node.\r
+ /// </summary>\r
+ /// <param name="node"></param>\r
+ /// <returns></returns>\r
+ public static int GetXmlNodeLineNumber(XmlNode node)\r
+ {\r
+ \r
+ //FIXME: not sure how this should work.\r
+ return 0;\r
+ }\r
+\r
+\r
+ /// <summary>\r
+ /// Gets the base error message.\r
+ /// </summary>\r
+ public string BareMessage\r
+ {\r
+ get \r
+ {\r
+ return _stringBareMessage;\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Gets the name of the configuration file where the error occurred.\r
+ /// </summary>\r
+ public string Filename\r
+ {\r
+ get \r
+ {\r
+ return _stringFilename;\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Returns the line number where the error occurred.\r
+ /// </summary>\r
+ public int Line\r
+ {\r
+ get \r
+ {\r
+ return _intLine;\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Gets a string containing the concatenated file name and line number where the error occurred.\r
+ /// </summary>\r
+ public override string Message\r
+ {\r
+ get \r
+ {\r
+ return _stringMessage;\r
+ }\r
+ }\r
+ }\r
+}\r
+
\ No newline at end of file
//
using System;
+using System.Collections;
using System.Collections.Specialized;
+using System.Xml;
+using System.Xml.XPath;
+using System.Windows.Forms;
namespace System.Configuration
{
public sealed class ConfigurationSettings
{
- private NameValueCollection appsettings;
-
-
+ static NameValueCollection _nvcAppSettings;
+ private static string applicationConfigFileName;
+
/// <summary>
/// ConfigurationSettings Constructor.
/// </summary>
public ConfigurationSettings ()
{
- appsettings = new NameValueCollection();
+
}
/// <summary>
/// </summary>
/// <param name="sectionName"></param>
/// <returns></returns>
- public static object GetConfig( string sectionName)
+ public static object GetConfig(string sectionName)
{
- //FIXME: Not sure how to determine the correct .config file to parse.
- return null;
+ //Create an instance of an XML Document.
+ XmlDocument ConfigurationDocument = new XmlDocument();
+ XmlNode sectionNode;
+
+
+
+ /*
+ * LAMESPEC: The .config file that needs to be parsed is the name of the application, plus ".config"
+ * ie. "Myapplication.exe.config"
+ * The only way I could find to get the name of the application is through System.Forms.Application.ExecutablePath, this
+ * may be an incorrect way to get this information. It works properly on a windows machine when building an executable,
+ * however, I'm not sure how this would work under other platforms.
+ */
+ //Get the full path to the Applicaton Configuration File.
+ applicationConfigFileName = Application.ExecutablePath + ".config";
+
+ //Create a new NameValueSectionHandler
+ NameValueSectionHandler objNVSHandler = new NameValueSectionHandler();
+
+ //Try to load the XML Document.
+ try
+ {
+ ConfigurationDocument.Load(applicationConfigFileName);
+ sectionNode = ConfigurationDocument.SelectSingleNode("//" + sectionName);
+ }
+ catch(XmlException)
+ {
+ //If an XmlException is thrown, it probably means that the .config file we are trying to load doesn't exist.
+ return null;
+ }
+ catch(XPathException)
+ {
+ //An XPathException is thrown if there was a problem with our XPath statement.
+ return null;
+ }
+
+ //If the specified sectionName is not found, then sectionNode will be null, and we can't pass
+ // a null to objNVSHandler.Create()
+ if(sectionNode == null)
+ {
+ return null;
+ }
+
+ //Create a NameValueSecitonHandler and add it to the NameValueCollection
+ object readOnlyNVCollection = objNVSHandler.Create(null, null, sectionNode);
+
+
+ //Return the collection
+ return readOnlyNVCollection;
}
/// <summary>
/// Get the Application Configuration Settings.
/// </summary>
- public NameValueCollection AppSettings
+ public static NameValueCollection AppSettings
{
get
- {
- return appsettings;
+ { //Define appSettings as a NameValueCollection.
+ NameValueCollection appSettings;
+
+ //Get the Configuration Settings for the "appSettings" section.
+ appSettings = (NameValueCollection) GetConfig("appSettings");;
+
+ return appSettings;
}
}
+
}
}
--- /dev/null
+\r
+//\r
+// System.Configuration.DictionarySectionHandler.cs\r
+//\r
+// Author:\r
+// Christopher Podurgiel (cpodurgiel@msn.com)\r
+//\r
+// (C) Chris Podurgiel\r
+//\r
+using System;\r
+using System.Collections.Specialized;\r
+using System.Xml;\r
+\r
+namespace System.Configuration\r
+{\r
+ /// <summary>\r
+ /// Summary description for DictionarySectionHandler.\r
+ /// </summary>\r
+ public class DictionarySectionHandler : IConfigurationSectionHandler\r
+ {\r
+ private static string _stringKeyName;\r
+ private static string _stringValueName;\r
+\r
+ /// <summary>\r
+ /// DictionarySectionHandler Constructor\r
+ /// </summary>\r
+ public DictionarySectionHandler()\r
+ {\r
+ //Set Default Values.\r
+ _stringKeyName = "key";\r
+ _stringValueName = "value";\r
+ }\r
+\r
+ /// <summary>\r
+ /// Creates a new DictionarySectionHandler object and adds the object to the collection.\r
+ /// </summary>\r
+ /// <param name="parent">Composed from the configuration settings in a corresponding parent configuration section.</param>\r
+ /// <param name="context">Provides access to the virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is null.</param>\r
+ /// <param name="section">The XML node that contains the configuration information to be handled. section provides direct access to the XML contents of the configuration section.</param>\r
+ /// <returns></returns>\r
+ public object Create(object parent, object context, XmlNode section)\r
+ {\r
+ //FIXME: Enter a meaningful error message\r
+ if(section == null)\r
+ { throw new ConfigurationException("XML Node can not be null."); }\r
+ \r
+ //FIXME: Enter a meaningful error message\r
+ if(parent == null)\r
+ { throw new ConfigurationException("", section); }\r
+\r
+ \r
+ DictionarySectionHandler objHandler = new DictionarySectionHandler();\r
+ NameValueCollection objCollection;\r
+ \r
+ //Unbox parent as a NameValueCollection type.\r
+ objCollection=(NameValueCollection)parent;\r
+\r
+ objCollection.Add(section.Attributes[_stringKeyName].Value, section.Attributes[_stringValueName].Value);\r
+ \r
+ return null;\r
+\r
+ //FIXME: this code is far form complete, probably not even correct.\r
+ \r
+ }\r
+\r
+ /// <summary>\r
+ /// Gets the name of the key attribute tag. This property is overidden by derived classes to change \r
+ /// the name of the key attribute tag. The default is "key".\r
+ /// </summary>\r
+ protected virtual string KeyAttributeName\r
+ {\r
+ get\r
+ {\r
+ return _stringKeyName;\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Gets the name of the value tag. This property may be overidden by derived classes to change\r
+ /// the name of the value tag. The default is "value".\r
+ /// </summary>\r
+ protected virtual string ValueAttributeName \r
+ {\r
+ get\r
+ {\r
+ return _stringValueName;\r
+ }\r
+ }\r
+ }\r
+}\r
-//
-// System.Configuration.IConfigurationSectionHandler.cs
-//
-// Author:
-// Christopher Podurgiel (cpodurgiel@msn.com)
-//
-// (C) Ximian, Inc. http://www.ximian.com
-//
-using System;
-using System.Xml;
-
-namespace System.Configuration
-{
- /// <summary>
- /// Summary description for IConfigurationSectionHandler.
- /// </summary>
- public interface IConfigurationSectionHandler
- {
- /// <summary>
- /// Creates a new configuration handler and adds the specified configuration object to the collection.
- /// </summary>
- /// <param name="parent">Composed from the configuration settings in a corresponding parent configuration section.</param>
- /// <param name="configContext">Provides access to the virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is null.</param>
- /// <param name="section">The XML node that contains the configuration information to be handled. section provides direct access to the XML contents of the configuration section.</param>
- /// <returns></returns>
- object Create(object parent, object configContext, XmlNode section);
- }
-}
-
-
+//\r
+// System.Configuration.IConfigurationSectionHandler.cs\r
+//\r
+// Author:\r
+// Christopher Podurgiel (cpodurgiel@msn.com)\r
+//\r
+// (C) Chris Podurgiel\r
+//\r
+using System;\r
+using System.Xml;\r
+\r
+namespace System.Configuration\r
+{\r
+ /// <summary>\r
+ /// Summary description for IConfigurationSectionHandler.\r
+ /// </summary>\r
+ public interface IConfigurationSectionHandler\r
+ {\r
+ /// <summary>\r
+ /// Creates a new configuration handler and adds the specified configuration object to the collection.\r
+ /// </summary>\r
+ /// <param name="parent">Composed from the configuration settings in a corresponding parent configuration section.</param>\r
+ /// <param name="configContext">Provides access to the virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is null.</param>\r
+ /// <param name="section">The XML node that contains the configuration information to be handled. section provides direct access to the XML contents of the configuration section.</param>\r
+ /// <returns></returns>\r
+ object Create(object parent, object configContext, XmlNode section);\r
+ }\r
+}\r
-//
-// System.Configuration.IgnoreSectionHandler.cs
-//
-// Author:
-// Christopher Podurgiel (cpodurgiel@msn.com)
-//
-// (C) Ximian, Inc. http://www.ximian.com
-//
-
-using System;
-using System.Xml;
-
-namespace System.Configuration
-{
- /// <summary>
- /// Summary description for IgnoreSectionHandler.
- /// </summary>
- public class IgnoreSectionHandler : IConfigurationSectionHandler
- {
- /// <summary>
- /// IgnoreSectionHandler Constructor
- /// </summary>
- public IgnoreSectionHandler()
- {
- //
- // TODO: Add constructor logic here
- //
- }
-
- /// <summary>
- /// Creates a new configuration handler and adds the specified configuration object to the collection.
- /// </summary>
- /// <param name="parent">Composed from the configuration settings in a corresponding parent configuration section.</param>
- /// <param name="configContext">Provides access to the virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is null.</param>
- /// <param name="section">The XML node that contains the configuration information to be handled. section provides direct access to the XML contents of the configuration section.</param>
- /// <returns></returns>
- public virtual object Create(object parent, object configContext, XmlNode section)
- {
+//\r
+// System.Configuration.IgnoreSectionHandler.cs\r
+//\r
+// Author:\r
+// Christopher Podurgiel (cpodurgiel@msn.com)\r
+//\r
+// (C) Chris Podurgiel\r
+//\r
+\r
+using System;\r
+using System.Xml;\r
+\r
+namespace System.Configuration\r
+{\r
+ /// <summary>\r
+ /// Summary description for IgnoreSectionHandler.\r
+ /// </summary>\r
+ public class IgnoreSectionHandler : IConfigurationSectionHandler\r
+ {\r
+ /// <summary>\r
+ /// IgnoreSectionHandler Constructor\r
+ /// </summary>\r
+ public IgnoreSectionHandler()\r
+ {\r
+ //\r
+ // TODO: Add constructor logic here\r
+ //\r
+ }\r
+\r
+ /// <summary>\r
+ /// Creates a new configuration handler and adds the specified configuration object to the collection.\r
+ /// </summary>\r
+ /// <param name="parent">Composed from the configuration settings in a corresponding parent configuration section.</param>\r
+ /// <param name="configContext">Provides access to the virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is null.</param>\r
+ /// <param name="section">The XML node that contains the configuration information to be handled. section provides direct access to the XML contents of the configuration section.</param>\r
+ /// <returns></returns>\r
+ public virtual object Create(object parent, object configContext, XmlNode section)\r
+ {\r
//FIXME: Add Implemetation code here.\r
- return null;
- }
- }
-}
-
-
+ return null;\r
+ }\r
+ }\r
+}\r
-//
-// System.Configuration.NameValueSectionHandler.cs
-//
-// Author:
-// Christopher Podurgiel (cpodurgiel@msn.com)
-//
-// (C) Ximian, Inc. http://www.ximian.com
-//
-using System;
-using System.Xml;
-
-namespace System.Configuration
-{
- /// <summary>
- /// Summary description for NameValueSectionHandler.
- /// </summary>
- public class NameValueSectionHandler : IConfigurationSectionHandler
- {
-
- private static string _stringKey;
- private static string _stringValue;
-
- /// <summary>
- /// NameValueSectionHandler Constructor
- /// </summary>
- public NameValueSectionHandler()
- {
- _stringKey = "key";
- _stringValue = "value";
- }
-
- /// <summary>
- /// Creates a new configuration handler and adds the specified configuration object to the collection.
- /// </summary>
- /// <param name="parent">Composed from the configuration settings in a corresponding parent configuration section.</param>
- /// <param name="configContext">Provides access to the virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is null.</param>
- /// <param name="section">The XML node that contains the configuration information to be handled. section provides direct access to the XML contents of the configuration section.</param>
- /// <returns></returns>
- public object Create(object parent, object context, XmlNode section)
- {
+//\r
+// System.Configuration.NameValueSectionHandler.cs\r
+//\r
+// Author:\r
+// Christopher Podurgiel (cpodurgiel@msn.com)\r
+//\r
+// (C) Chris Podurgiel\r
+//\r
+using System;\r
+using System.Xml;\r
+\r
+namespace System.Configuration\r
+{\r
+ /// <summary>\r
+ /// Summary description for NameValueSectionHandler.\r
+ /// </summary>\r
+ public class NameValueSectionHandler : IConfigurationSectionHandler\r
+ {\r
+ private static string _stringKey;\r
+ private static string _stringValue;\r
+\r
+ /// <summary>\r
+ /// NameValueSectionHandler Constructor\r
+ /// </summary>\r
+ public NameValueSectionHandler()\r
+ {\r
+ //Set Default Values.\r
+ _stringKey = "key";\r
+ _stringValue = "value";\r
+ }\r
+\r
+ /// <summary>\r
+ /// Creates a new configuration handler and adds the specified configuration object to the collection.\r
+ /// </summary>\r
+ /// <param name="parent">Composed from the configuration settings in a corresponding parent configuration section.</param>\r
+ /// <param name="context">Provides access to the virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is null.</param>\r
+ /// <param name="section">The XML node that contains the configuration information to be handled. section provides direct access to the XML contents of the configuration section.</param>\r
+ /// <returns></returns>\r
+ public object Create(object parent, object context, XmlNode section)\r
+ {\r
//FIXME: Add Implemetation code here.\r
- return null;
- }
-
- /// <summary>
- /// Gets the name of the key in the key-value pair.
- /// </summary>
- protected virtual string KeyAttributeName
- {
- get
- {
- return _stringKey;
- }
- }
-
- /// <summary>
- /// Gets the value for the key in the key-value pair.
- /// </summary>
- protected virtual string ValueAttributeName
- {
- get
- {
- return _stringValue;
- }
- }
-
- }
-}
-
-
+ return null;\r
+ }\r
+\r
+ /// <summary>\r
+ /// Gets the name of the key in the key-value pair.\r
+ /// </summary>\r
+ protected virtual string KeyAttributeName\r
+ {\r
+ get\r
+ {\r
+ return _stringKey;\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Gets the value for the key in the key-value pair.\r
+ /// </summary>\r
+ protected virtual string ValueAttributeName \r
+ {\r
+ get\r
+ {\r
+ return _stringValue;\r
+ }\r
+ }\r
+\r
+ }\r
+}\r
--- /dev/null
+//\r
+// System.Configuration.SingleTagSectionHandler.cs\r
+//\r
+// Author:\r
+// Christopher Podurgiel (cpodurgiel@msn.com)\r
+//\r
+// (C) Chris Podurgiel\r
+//\r
+\r
+using System;\r
+using System.Xml;\r
+\r
+\r
+namespace System.Configuration\r
+{\r
+ /// <summary>\r
+ /// Summary description for SingleTagSectionHandler.\r
+ /// </summary>\r
+ public class SingleTagSectionHandler : IConfigurationSectionHandler\r
+ {\r
+\r
+ public SingleTagSectionHandler()\r
+ {\r
+ //\r
+ // TODO: Add constructor logic here\r
+ //\r
+ }\r
+\r
+ /// <summary>\r
+ /// Returns a collection of configuration section values.\r
+ /// </summary>\r
+ /// <param name="parent"></param>\r
+ /// <param name="context"></param>\r
+ /// <param name="section">The name of the configuration section.</param>\r
+ /// <returns></returns>\r
+ public object Create(object parent, object context, XmlNode section)\r
+ {\r
+ //FIXME: Add Implemetation code here.\r
+ return null;\r
+ }\r
+ }\r
+}\r
-ConfigurationException.cs
-IConfigurationSectionHandler.cs
-IgnoreSectionHandler.cs
-NameValueSectionHandler.cs
+ConfigurationException.cs\r
+ConfigurationSettings.cs\r
+DictionarySectionHandler.cs\r
+IConfigurationSectionHandler.cs\r
+IgnoreSectionHandler.cs\r
+NameValueSectionHandler.cs\r
+SingleTagSectionHandler.cs\r