//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ namespace System.ServiceModel.Configuration { using System.ComponentModel; using System.Configuration; using System.ServiceModel; using System.Globalization; using System.Net; using System.Net.Security; using System.Security.Principal; using System.ServiceModel.Channels; public partial class TransactionFlowElement : BindingElementExtensionElement { public TransactionFlowElement() { } public override void ApplyConfiguration(BindingElement bindingElement) { base.ApplyConfiguration(bindingElement); TransactionFlowBindingElement binding = (TransactionFlowBindingElement)bindingElement; binding.Transactions = true; binding.TransactionProtocol = this.TransactionProtocol; binding.AllowWildcardAction = this.AllowWildcardAction; } [ConfigurationProperty(ConfigurationStrings.TransactionProtocol, DefaultValue = TransactionFlowDefaults.TransactionProtocolString)] [TypeConverter(typeof(TransactionProtocolConverter))] public TransactionProtocol TransactionProtocol { get { return (TransactionProtocol)base[ConfigurationStrings.TransactionProtocol]; } set { base[ConfigurationStrings.TransactionProtocol] = value; } } [ConfigurationProperty(ConfigurationStrings.TransactionAllowWildcardAction, DefaultValue = false)] public bool AllowWildcardAction { get { return (bool)base[ConfigurationStrings.TransactionAllowWildcardAction]; } set { base[ConfigurationStrings.TransactionAllowWildcardAction] = value; } } public override Type BindingElementType { get { return typeof(TransactionFlowBindingElement); } } public override void CopyFrom(ServiceModelExtensionElement from) { base.CopyFrom(from); TransactionFlowElement source = (TransactionFlowElement)from; #pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument this.TransactionProtocol = source.TransactionProtocol; } override protected internal BindingElement CreateBindingElement() { return new TransactionFlowBindingElement(true, TransactionProtocol) { AllowWildcardAction = this.AllowWildcardAction }; } protected internal override void InitializeFrom(BindingElement bindingElement) { base.InitializeFrom(bindingElement); TransactionFlowBindingElement binding = (TransactionFlowBindingElement)bindingElement; SetPropertyValueIfNotDefaultValue(ConfigurationStrings.TransactionProtocol, binding.TransactionProtocol); } } }