PeerResolverElement.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //------------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------------------------
  4. namespace System.ServiceModel.Configuration
  5. {
  6. using System.Configuration;
  7. using System.Globalization;
  8. using System.Net;
  9. using System.Net.Security;
  10. using System.ServiceModel;
  11. using System.ComponentModel;
  12. using System.ServiceModel.PeerResolvers;
  13. public sealed partial class PeerResolverElement : ServiceModelConfigurationElement
  14. {
  15. [ConfigurationProperty(ConfigurationStrings.Mode, DefaultValue = PeerResolverMode.Auto)]
  16. [ServiceModelEnumValidator(typeof(PeerResolverModeHelper))]
  17. public PeerResolverMode Mode
  18. {
  19. get { return (PeerResolverMode)base[ConfigurationStrings.Mode]; }
  20. set { base[ConfigurationStrings.Mode] = value; }
  21. }
  22. [ConfigurationProperty(ConfigurationStrings.ReferralPolicy, DefaultValue = PeerReferralPolicy.Service)]
  23. [ServiceModelEnumValidator(typeof(PeerReferralPolicyHelper))]
  24. public PeerReferralPolicy ReferralPolicy
  25. {
  26. get { return (PeerReferralPolicy)base[ConfigurationStrings.ReferralPolicy]; }
  27. set { base[ConfigurationStrings.ReferralPolicy] = value; }
  28. }
  29. [ConfigurationProperty(ConfigurationStrings.Custom)]
  30. public PeerCustomResolverElement Custom
  31. {
  32. get { return (PeerCustomResolverElement)base[ConfigurationStrings.Custom]; }
  33. }
  34. internal void ApplyConfiguration(PeerResolverSettings settings)
  35. {
  36. if (settings == null)
  37. {
  38. throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("settings");
  39. }
  40. settings.Mode = this.Mode;
  41. settings.ReferralPolicy = this.ReferralPolicy;
  42. this.Custom.ApplyConfiguration(settings.Custom);
  43. }
  44. internal void InitializeFrom(PeerResolverSettings settings)
  45. {
  46. if (settings == null)
  47. {
  48. throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("settings");
  49. }
  50. SetPropertyValueIfNotDefaultValue(ConfigurationStrings.Mode, settings.Mode);
  51. SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ReferralPolicy, settings.ReferralPolicy);
  52. this.Custom.InitializeFrom(settings.Custom);
  53. }
  54. }
  55. }