TransactionFlowElement.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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.ServiceModel;
  9. using System.Globalization;
  10. using System.Net;
  11. using System.Net.Security;
  12. using System.Security.Principal;
  13. using System.ServiceModel.Channels;
  14. public partial class TransactionFlowElement : BindingElementExtensionElement
  15. {
  16. public TransactionFlowElement()
  17. {
  18. }
  19. public override void ApplyConfiguration(BindingElement bindingElement)
  20. {
  21. base.ApplyConfiguration(bindingElement);
  22. TransactionFlowBindingElement binding = (TransactionFlowBindingElement)bindingElement;
  23. binding.Transactions = true;
  24. binding.TransactionProtocol = this.TransactionProtocol;
  25. binding.AllowWildcardAction = this.AllowWildcardAction;
  26. }
  27. [ConfigurationProperty(ConfigurationStrings.TransactionProtocol, DefaultValue = TransactionFlowDefaults.TransactionProtocolString)]
  28. [TypeConverter(typeof(TransactionProtocolConverter))]
  29. public TransactionProtocol TransactionProtocol
  30. {
  31. get { return (TransactionProtocol)base[ConfigurationStrings.TransactionProtocol]; }
  32. set { base[ConfigurationStrings.TransactionProtocol] = value; }
  33. }
  34. [ConfigurationProperty(ConfigurationStrings.TransactionAllowWildcardAction, DefaultValue = false)]
  35. public bool AllowWildcardAction
  36. {
  37. get { return (bool)base[ConfigurationStrings.TransactionAllowWildcardAction]; }
  38. set { base[ConfigurationStrings.TransactionAllowWildcardAction] = value; }
  39. }
  40. public override Type BindingElementType
  41. {
  42. get { return typeof(TransactionFlowBindingElement); }
  43. }
  44. public override void CopyFrom(ServiceModelExtensionElement from)
  45. {
  46. base.CopyFrom(from);
  47. TransactionFlowElement source = (TransactionFlowElement)from;
  48. #pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
  49. this.TransactionProtocol = source.TransactionProtocol;
  50. }
  51. override protected internal BindingElement CreateBindingElement()
  52. {
  53. return new TransactionFlowBindingElement(true, TransactionProtocol)
  54. {
  55. AllowWildcardAction = this.AllowWildcardAction
  56. };
  57. }
  58. protected internal override void InitializeFrom(BindingElement bindingElement)
  59. {
  60. base.InitializeFrom(bindingElement);
  61. TransactionFlowBindingElement binding = (TransactionFlowBindingElement)bindingElement;
  62. SetPropertyValueIfNotDefaultValue(ConfigurationStrings.TransactionProtocol, binding.TransactionProtocol);
  63. }
  64. }
  65. }