CallbackTimeoutsElement.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. //------------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------------------------
  4. namespace System.ServiceModel.Configuration
  5. {
  6. using System.ComponentModel;
  7. using System.Configuration;
  8. using System.Runtime;
  9. using System.ServiceModel.Description;
  10. public sealed partial class CallbackTimeoutsElement : BehaviorExtensionElement
  11. {
  12. public CallbackTimeoutsElement()
  13. {
  14. }
  15. [ConfigurationProperty(ConfigurationStrings.TransactionTimeout, DefaultValue = ServiceDefaults.TransactionTimeoutString)]
  16. [TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
  17. [ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
  18. public TimeSpan TransactionTimeout
  19. {
  20. get { return (TimeSpan)base[ConfigurationStrings.TransactionTimeout]; }
  21. set { base[ConfigurationStrings.TransactionTimeout] = value; }
  22. }
  23. public override void CopyFrom(ServiceModelExtensionElement from)
  24. {
  25. base.CopyFrom(from);
  26. CallbackTimeoutsElement source = (CallbackTimeoutsElement)from;
  27. #pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
  28. this.TransactionTimeout = source.TransactionTimeout;
  29. }
  30. protected internal override object CreateBehavior()
  31. {
  32. CallbackTimeoutsBehavior behavior = new CallbackTimeoutsBehavior();
  33. behavior.TransactionTimeout = this.TransactionTimeout;
  34. return behavior;
  35. }
  36. public override Type BehaviorType
  37. {
  38. get { return typeof(CallbackTimeoutsBehavior); }
  39. }
  40. }
  41. }