summaryrefslogtreecommitdiff
path: root/dotnet/Qpid.Client/Client/Configuration/AuthenticationConfigurationSectionHandler.cs
diff options
context:
space:
mode:
Diffstat (limited to 'dotnet/Qpid.Client/Client/Configuration/AuthenticationConfigurationSectionHandler.cs')
-rw-r--r--dotnet/Qpid.Client/Client/Configuration/AuthenticationConfigurationSectionHandler.cs24
1 files changed, 22 insertions, 2 deletions
diff --git a/dotnet/Qpid.Client/Client/Configuration/AuthenticationConfigurationSectionHandler.cs b/dotnet/Qpid.Client/Client/Configuration/AuthenticationConfigurationSectionHandler.cs
index 54ee2c6660..0d1fb73c31 100644
--- a/dotnet/Qpid.Client/Client/Configuration/AuthenticationConfigurationSectionHandler.cs
+++ b/dotnet/Qpid.Client/Client/Configuration/AuthenticationConfigurationSectionHandler.cs
@@ -37,7 +37,7 @@ namespace Qpid.Client.Configuration
public object Create(object parent, object configContext, System.Xml.XmlNode section)
{
NameValueSectionHandler handler = new NameValueSectionHandler();
- IDictionary schemes = new Hashtable();
+ OrderedHashTable schemes = new OrderedHashTable();
NameValueCollection options = (NameValueCollection)
handler.Create(parent, configContext, section);
@@ -52,7 +52,7 @@ namespace Qpid.Client.Configuration
if ( !typeof(IAMQCallbackHandler).IsAssignableFrom(type) )
throw new ConfigurationException(string.Format("Type '{0}' does not implement IAMQCallbackHandler", key));
- schemes[key] = type;
+ schemes.Add(key, type);
}
}
@@ -61,4 +61,24 @@ namespace Qpid.Client.Configuration
} // class AuthenticationConfigurationSectionHandler
+ public class OrderedHashTable : Hashtable
+ {
+ private ArrayList _keys = new ArrayList();
+
+ public IList OrderedKeys
+ {
+ get { return _keys; }
+ }
+
+ public override void Add(object key, object value)
+ {
+ base.Add(key, value);
+ _keys.Add(key);
+ }
+ public override void Remove(object key)
+ {
+ base.Remove(key);
+ _keys.Remove(key);
+ }
+ }
} // namespace Qpid.Client.Configuration