DelegatingHandlerElementCollection.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // <copyright>
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. // </copyright>
  4. namespace System.ServiceModel.Configuration
  5. {
  6. using System.Configuration;
  7. using System.Runtime;
  8. /// <summary>
  9. /// DelegatingHandlerElementCollection for DelegatingHandlers
  10. /// </summary>
  11. [ConfigurationCollection(typeof(DelegatingHandlerElement), AddItemName = ConfigurationStrings.Handler, CollectionType = ConfigurationElementCollectionType.BasicMap)]
  12. public sealed class DelegatingHandlerElementCollection : ServiceModelConfigurationElementCollection<DelegatingHandlerElement>
  13. {
  14. public DelegatingHandlerElementCollection()
  15. : base(ConfigurationElementCollectionType.BasicMap, ConfigurationStrings.Handler)
  16. {
  17. }
  18. protected override bool ThrowOnDuplicate
  19. {
  20. get
  21. {
  22. return false;
  23. }
  24. }
  25. protected override object GetElementKey(ConfigurationElement element)
  26. {
  27. if (element == null)
  28. {
  29. throw FxTrace.Exception.ArgumentNull("element");
  30. }
  31. DelegatingHandlerElement delegatingHandlerElement = element as DelegatingHandlerElement;
  32. if (delegatingHandlerElement == null)
  33. {
  34. throw FxTrace.Exception.Argument("element", SR.GetString(SR.InputMustBeDelegatingHandlerElementError, typeof(ConfigurationElement).Name, typeof(DelegatingHandlerElement).Name));
  35. }
  36. return delegatingHandlerElement.Id;
  37. }
  38. }
  39. }