//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // // antonam //------------------------------------------------------------------------------ namespace System.Data { using System.Configuration; using System.Collections; internal sealed class LocalDBInstanceElement : ConfigurationElement { [ConfigurationProperty("name", IsRequired = true)] public string Name { get { return this["name"] as string; } } [ConfigurationProperty("version", IsRequired = true)] public string Version { get { return this["version"] as string; } } } internal sealed class LocalDBInstancesCollection : ConfigurationElementCollection { private class TrimOrdinalIgnoreCaseStringComparer : IComparer { public int Compare(object x, object y) { string xStr = x as string; if (xStr != null) x = xStr.Trim(); string yStr = y as string; if (yStr != null) y = yStr.Trim(); return StringComparer.OrdinalIgnoreCase.Compare(x,y); } } static readonly TrimOrdinalIgnoreCaseStringComparer s_comparer = new TrimOrdinalIgnoreCaseStringComparer(); internal LocalDBInstancesCollection() : base(s_comparer) { } protected override ConfigurationElement CreateNewElement() { return new LocalDBInstanceElement(); } protected override object GetElementKey(ConfigurationElement element) { return ((LocalDBInstanceElement)element).Name; } } internal sealed class LocalDBConfigurationSection : ConfigurationSection { [ConfigurationProperty("localdbinstances", IsRequired = true)] public LocalDBInstancesCollection LocalDbInstances { get { return (LocalDBInstancesCollection)this["localdbinstances"] ?? new LocalDBInstancesCollection(); } } } }