//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ namespace System.ServiceModel.Configuration { using System.ComponentModel; using System.Configuration; using System.Globalization; using System.Net.Security; using System.Text; using System.ServiceModel.Channels; public sealed partial class WindowsStreamSecurityElement : BindingElementExtensionElement { public WindowsStreamSecurityElement() { } [ConfigurationProperty(ConfigurationStrings.ProtectionLevel, DefaultValue = ConnectionOrientedTransportDefaults.ProtectionLevel)] [StandardRuntimeEnumValidator(typeof(ProtectionLevel))] public ProtectionLevel ProtectionLevel { get { return (ProtectionLevel)base[ConfigurationStrings.ProtectionLevel]; } set { base[ConfigurationStrings.ProtectionLevel] = value; } } public override void ApplyConfiguration(BindingElement bindingElement) { base.ApplyConfiguration(bindingElement); WindowsStreamSecurityBindingElement windowsBindingElement = (WindowsStreamSecurityBindingElement)bindingElement; windowsBindingElement.ProtectionLevel = this.ProtectionLevel; } protected internal override BindingElement CreateBindingElement() { WindowsStreamSecurityBindingElement windowsBindingElement = new WindowsStreamSecurityBindingElement(); this.ApplyConfiguration(windowsBindingElement); return windowsBindingElement; } public override Type BindingElementType { get { return typeof(WindowsStreamSecurityBindingElement); } } public override void CopyFrom(ServiceModelExtensionElement from) { base.CopyFrom(from); WindowsStreamSecurityElement source = (WindowsStreamSecurityElement)from; #pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument this.ProtectionLevel = source.ProtectionLevel; } protected internal override void InitializeFrom(BindingElement bindingElement) { base.InitializeFrom(bindingElement); WindowsStreamSecurityBindingElement windowsBindingElement = (WindowsStreamSecurityBindingElement)bindingElement; SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ProtectionLevel, windowsBindingElement.ProtectionLevel); } } }