LocalDBConfig.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. //------------------------------------------------------------------------------
  2. // <copyright file="LocalDB.cs" company="Microsoft">
  3. // Copyright (c) Microsoft Corporation. All rights reserved.
  4. // </copyright>
  5. // <owner current="true" primary="true">antonam</owner>
  6. //------------------------------------------------------------------------------
  7. namespace System.Data
  8. {
  9. using System.Configuration;
  10. using System.Collections;
  11. internal sealed class LocalDBInstanceElement : ConfigurationElement
  12. {
  13. [ConfigurationProperty("name", IsRequired = true)]
  14. public string Name
  15. {
  16. get
  17. {
  18. return this["name"] as string;
  19. }
  20. }
  21. [ConfigurationProperty("version", IsRequired = true)]
  22. public string Version
  23. {
  24. get
  25. {
  26. return this["version"] as string;
  27. }
  28. }
  29. }
  30. internal sealed class LocalDBInstancesCollection : ConfigurationElementCollection
  31. {
  32. private class TrimOrdinalIgnoreCaseStringComparer : IComparer
  33. {
  34. public int Compare(object x, object y)
  35. {
  36. string xStr = x as string;
  37. if (xStr != null)
  38. x = xStr.Trim();
  39. string yStr = y as string;
  40. if (yStr != null)
  41. y = yStr.Trim();
  42. return StringComparer.OrdinalIgnoreCase.Compare(x,y);
  43. }
  44. }
  45. static readonly TrimOrdinalIgnoreCaseStringComparer s_comparer = new TrimOrdinalIgnoreCaseStringComparer();
  46. internal LocalDBInstancesCollection()
  47. : base(s_comparer)
  48. {
  49. }
  50. protected override ConfigurationElement CreateNewElement()
  51. {
  52. return new LocalDBInstanceElement();
  53. }
  54. protected override object GetElementKey(ConfigurationElement element)
  55. {
  56. return ((LocalDBInstanceElement)element).Name;
  57. }
  58. }
  59. internal sealed class LocalDBConfigurationSection : ConfigurationSection
  60. {
  61. [ConfigurationProperty("localdbinstances", IsRequired = true)]
  62. public LocalDBInstancesCollection LocalDbInstances
  63. {
  64. get
  65. {
  66. return (LocalDBInstancesCollection)this["localdbinstances"] ?? new LocalDBInstancesCollection();
  67. }
  68. }
  69. }
  70. }