Silverlight 5 WinRT

  public sealed class AddressHeaderCollectionElement
  : ServiceModelConfigurationElement
  public AddressHeaderCollection Headers { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  protected virtual void DeserializeElement(XmlReader reader, Boolean serializeCollectionKey);
  protected virtual Boolean SerializeToXmlElement(XmlWriter writer, String elementName);

  public sealed class AllowedAudienceUriElement
  : ConfigurationElement
  public String AllowedAudienceUri { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class AllowedAudienceUriElementCollection
  : ServiceModelConfigurationElementCollection`1<AllowedAudienceUriElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual ConfigurationElement CreateNewElement();
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class ApplicationContainerSettingsElement
  : ServiceModelConfigurationElement
  public String PackageMoniker { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Int32 SessionId { get; set; }

  public sealed enum AuthenticationMode
  : IComparable, IFormattable, IConvertible
  { AnonymousForCertificate, AnonymousForSslNegotiated, CertificateOverTransport, IssuedToken, IssuedTokenForCertificate, IssuedTokenForSslNegotiated, IssuedTokenOverTransport, Kerberos, KerberosOverTransport, MutualCertificate, MutualCertificateDuplex, MutualSslNegotiated, SecureConversation, SspiNegotiated, UserNameForCertificate, UserNameForSslNegotiated, UserNameOverTransport, SspiNegotiatedOverTransport }

  public sealed class AuthorizationPolicyTypeElement
  : ConfigurationElement
  public String PolicyType { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class AuthorizationPolicyTypeElementCollection
  : ServiceModelConfigurationElementCollection`1<AuthorizationPolicyTypeElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class BaseAddressElement
  : ConfigurationElement
  public String BaseAddress { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class BaseAddressElementCollection
  : ServiceModelConfigurationElementCollection`1<BaseAddressElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual ConfigurationElement CreateNewElement();
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class BaseAddressPrefixFilterElement
  : ConfigurationElement
  public Uri Prefix { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class BaseAddressPrefixFilterElementCollection
  : ServiceModelConfigurationElementCollection`1<BaseAddressPrefixFilterElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual ConfigurationElement CreateNewElement();
  protected virtual Object GetElementKey(ConfigurationElement element);

  public abstract class BaseHttpBindingElement
  : StandardBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  public Boolean AllowCookies { get; set; }
  public Boolean BypassProxyOnLocal { get; set; }
  public HostNameComparisonMode HostNameComparisonMode { get; set; }
  public Int64 MaxBufferPoolSize { get; set; }
  public Int32 MaxBufferSize { get; set; }
  public Int64 MaxReceivedMessageSize { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Uri ProxyAddress { get; set; }
  public XmlDictionaryReaderQuotasElement ReaderQuotas { get; }
  public Encoding TextEncoding { get; set; }
  public TransferMode TransferMode { get; set; }
  public Boolean UseDefaultWebProxy { get; set; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public class BasicHttpBindingCollectionElement
  : StandardBindingCollectionElement`2<BasicHttpBinding, BasicHttpBindingElement>, IConfigurationContextProviderInternal

  public class BasicHttpBindingElement
  : BaseHttpBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public WSMessageEncoding MessageEncoding { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public BasicHttpSecurityElement Security { get; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public class BasicHttpContextBindingCollectionElement
  : StandardBindingCollectionElement`2<BasicHttpContextBinding, BasicHttpContextBindingElement>, IConfigurationContextProviderInternal

  public class BasicHttpContextBindingElement
  : BasicHttpBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public Boolean ContextManagementEnabled { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public sealed class BasicHttpMessageSecurityElement
  : ServiceModelConfigurationElement
  public SecurityAlgorithmSuite AlgorithmSuite { get; set; }
  public BasicHttpMessageCredentialType ClientCredentialType { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public class BasicHttpsBindingCollectionElement
  : StandardBindingCollectionElement`2<BasicHttpsBinding, BasicHttpsBindingElement>, IConfigurationContextProviderInternal

  public class BasicHttpsBindingElement
  : BaseHttpBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public WSMessageEncoding MessageEncoding { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public BasicHttpsSecurityElement Security { get; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public sealed class BasicHttpSecurityElement
  : ServiceModelConfigurationElement
  public BasicHttpMessageSecurityElement Message { get; }
  public BasicHttpSecurityMode Mode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public HttpTransportSecurityElement Transport { get; }

  public sealed class BasicHttpsSecurityElement
  : ServiceModelConfigurationElement
  public BasicHttpMessageSecurityElement Message { get; }
  public BasicHttpsSecurityMode Mode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public HttpTransportSecurityElement Transport { get; }

  public abstract class BehaviorExtensionElement
  : ServiceModelExtensionElement, IConfigurationContextProviderInternal
  public abstract virtual Type BehaviorType { get; }
  internal protected abstract virtual Object CreateBehavior();

  public class BehaviorsSection
  : ConfigurationSection
  public EndpointBehaviorElementCollection EndpointBehaviors { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public ServiceBehaviorElementCollection ServiceBehaviors { get; }

  public sealed class BinaryMessageEncodingElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  public CompressionFormat CompressionFormat { get; set; }
  public Int32 MaxReadPoolSize { get; set; }
  public Int32 MaxSessionSize { get; set; }
  public Int32 MaxWritePoolSize { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public XmlDictionaryReaderQuotasElement ReaderQuotas { get; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public abstract class BindingCollectionElement
  : ConfigurationElement, IConfigurationContextProviderInternal
  public String BindingName { get; }
  public abstract virtual Type BindingType { get; }
  public abstract virtual ReadOnlyCollection`1<IBindingConfigurationElement> ConfiguredBindings { get; }
  public abstract virtual Boolean ContainsKey(String name);
  internal protected abstract virtual Binding GetDefault();
  internal protected abstract virtual Boolean TryAdd(String name, Binding binding, Configuration config);

  public abstract class BindingElementExtensionElement
  : ServiceModelExtensionElement, IConfigurationContextProviderInternal
  public abstract virtual Type BindingElementType { get; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  internal protected abstract virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class BindingsSection
  : ConfigurationSection, IConfigurationContextProviderInternal
  public BasicHttpBindingCollectionElement BasicHttpBinding { get; }
  public BasicHttpsBindingCollectionElement BasicHttpsBinding { get; }
  public List`1<BindingCollectionElement> BindingCollections { get; }
  public CustomBindingCollectionElement CustomBinding { get; }
  public BindingCollectionElement Item { get; }
  public MsmqIntegrationBindingCollectionElement MsmqIntegrationBinding { get; }
  public NetHttpBindingCollectionElement NetHttpBinding { get; }
  public NetHttpsBindingCollectionElement NetHttpsBinding { get; }
  public NetMsmqBindingCollectionElement NetMsmqBinding { get; }
  public NetNamedPipeBindingCollectionElement NetNamedPipeBinding { get; }
  public NetPeerTcpBindingCollectionElement NetPeerTcpBinding { get; }
  public NetTcpBindingCollectionElement NetTcpBinding { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public WS2007FederationHttpBindingCollectionElement WS2007FederationHttpBinding { get; }
  public WS2007HttpBindingCollectionElement WS2007HttpBinding { get; }
  public WSDualHttpBindingCollectionElement WSDualHttpBinding { get; }
  public WSFederationHttpBindingCollectionElement WSFederationHttpBinding { get; }
  public WSHttpBindingCollectionElement WSHttpBinding { get; }
  static public BindingsSection GetSection(Configuration config);
  protected virtual Boolean OnDeserializeUnrecognizedElement(String elementName, XmlReader reader);

  public sealed class CallbackDebugElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  public Boolean IncludeExceptionDetailInFaults { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class CallbackTimeoutsElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public TimeSpan TransactionTimeout { get; set; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class CertificateElement
  : ConfigurationElement
  public String EncodedValue { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class CertificateReferenceElement
  : ConfigurationElement
  public String FindValue { get; set; }
  public Boolean IsChainIncluded { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public StoreLocation StoreLocation { get; set; }
  public StoreName StoreName { get; set; }
  public X509FindType X509FindType { get; set; }

  public sealed class ChannelEndpointElement
  : ConfigurationElement, IConfigurationContextProviderInternal
  public Uri Address { get; set; }
  public String BehaviorConfiguration { get; set; }
  public String Binding { get; set; }
  public String BindingConfiguration { get; set; }
  public String Contract { get; set; }
  public String EndpointConfiguration { get; set; }
  public AddressHeaderCollectionElement Headers { get; }
  public IdentityElement Identity { get; }
  public String Kind { get; set; }
  public String Name { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  protected virtual void Reset(ConfigurationElement parentElement);

  public sealed class ChannelEndpointElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<ChannelEndpointElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class ChannelPoolSettingsElement
  : ServiceModelConfigurationElement
  public TimeSpan IdleTimeout { get; set; }
  public TimeSpan LeaseTimeout { get; set; }
  public Int32 MaxOutboundChannelsPerEndpoint { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class ClaimTypeElement
  : ConfigurationElement
  public String ClaimType { get; set; }
  public Boolean IsOptional { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class ClaimTypeElementCollection
  : ServiceModelConfigurationElementCollection`1<ClaimTypeElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class ClearBehaviorElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  internal protected virtual Object CreateBehavior();

  public class ClientCredentialsElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  public X509InitiatorCertificateClientElement ClientCertificate { get; }
  public HttpDigestClientElement HttpDigest { get; }
  public IssuedTokenClientElement IssuedToken { get; }
  public PeerCredentialElement Peer { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public X509RecipientCertificateClientElement ServiceCertificate { get; }
  public Boolean SupportInteractive { get; set; }
  public String Type { get; set; }
  public Boolean UseIdentityConfiguration { get; set; }
  public WindowsClientElement Windows { get; }
  internal protected void ApplyConfiguration(ClientCredentials behavior);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class ClientSection
  : ConfigurationSection, IConfigurationContextProviderInternal
  public ChannelEndpointElementCollection Endpoints { get; }
  public MetadataElement Metadata { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  protected virtual void InitializeDefault();
  protected virtual void PostDeserialize();

  public sealed class ClientViaElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Uri ViaUri { get; set; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class ComContractElement
  : ConfigurationElement
  public String Contract { get; set; }
  public ComMethodElementCollection ExposedMethods { get; }
  public String Name { get; set; }
  public String Namespace { get; set; }
  public ComPersistableTypeElementCollection PersistableTypes { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Boolean RequiresSession { get; set; }
  public ComUdtElementCollection UserDefinedTypes { get; }

  public sealed class ComContractElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<ComContractElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class ComContractsSection
  : ConfigurationSection
  public ComContractElementCollection ComContracts { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class ComMethodElement
  : ConfigurationElement
  public String ExposedMethod { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class ComMethodElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<ComMethodElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual Object GetElementKey(ConfigurationElement element);

  public class CommonBehaviorsSection
  : ConfigurationSection
  public CommonEndpointBehaviorElement EndpointBehaviors { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public CommonServiceBehaviorElement ServiceBehaviors { get; }

  public class CommonEndpointBehaviorElement
  : ServiceModelExtensionCollectionElement`1<BehaviorExtensionElement>, ICollection`1<BehaviorExtensionElement>, IEnumerable`1<BehaviorExtensionElement>, IEnumerable, IConfigurationContextProviderInternal
  public virtual void Add(BehaviorExtensionElement element);
  public virtual Boolean CanAdd(BehaviorExtensionElement element);

  public class CommonServiceBehaviorElement
  : ServiceModelExtensionCollectionElement`1<BehaviorExtensionElement>, ICollection`1<BehaviorExtensionElement>, IEnumerable`1<BehaviorExtensionElement>, IEnumerable, IConfigurationContextProviderInternal
  public virtual void Add(BehaviorExtensionElement element);
  public virtual Boolean CanAdd(BehaviorExtensionElement element);

  public sealed class ComPersistableTypeElement
  : ConfigurationElement
  public String ID { get; set; }
  public String Name { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class ComPersistableTypeElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<ComPersistableTypeElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class CompositeDuplexElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  public Uri ClientBaseAddress { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class ComUdtElement
  : ConfigurationElement
  public String Name { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String TypeDefID { get; set; }
  public String TypeLibID { get; set; }
  public String TypeLibVersion { get; set; }

  public sealed class ComUdtElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<ComUdtElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class ConfigurationChannelFactory`1<TChannel>
  : ChannelFactory`1<TChannel>, ICommunicationObject, IChannelFactory, IDisposable, IChannelFactory`1<TChannel>

  public sealed class ConfigurationDuplexChannelFactory`1<TChannel>
  : DuplexChannelFactory`1<TChannel>, ICommunicationObject, IChannelFactory, IDisposable, IChannelFactory`1<TChannel>

  public abstract class ConnectionOrientedTransportElement
  : TransportElement, IConfigurationContextProviderInternal
  public TimeSpan ChannelInitializationTimeout { get; set; }
  public Int32 ConnectionBufferSize { get; set; }
  public HostNameComparisonMode HostNameComparisonMode { get; set; }
  public Int32 MaxBufferSize { get; set; }
  public TimeSpan MaxOutputDelay { get; set; }
  public Int32 MaxPendingAccepts { get; set; }
  public Int32 MaxPendingConnections { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public TransferMode TransferMode { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public class ContextBindingElementExtensionElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  public Uri ClientCallbackAddress { get; set; }
  public ContextExchangeMechanism ContextExchangeMechanism { get; set; }
  public Boolean ContextManagementEnabled { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public ProtectionLevel ProtectionLevel { get; set; }
  internal protected virtual BindingElement CreateBindingElement();

  public sealed class CustomBindingCollectionElement
  : BindingCollectionElement, IConfigurationContextProviderInternal
  public CustomBindingElementCollection Bindings { get; }
  public virtual Type BindingType { get; }
  public virtual ReadOnlyCollection`1<IBindingConfigurationElement> ConfiguredBindings { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual Boolean ContainsKey(String name);
  internal protected virtual Binding GetDefault();
  internal protected virtual Boolean TryAdd(String name, Binding binding, Configuration config);

  public class CustomBindingElement
  : NamedServiceModelExtensionCollectionElement`1<BindingElementExtensionElement>, ICollection`1<BindingElementExtensionElement>, IEnumerable`1<BindingElementExtensionElement>, IEnumerable, IConfigurationContextProviderInternal, IBindingConfigurationElement
  public virtual TimeSpan CloseTimeout { get; set; }
  public virtual TimeSpan OpenTimeout { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual TimeSpan ReceiveTimeout { get; set; }
  public virtual TimeSpan SendTimeout { get; set; }
  public virtual void Add(BindingElementExtensionElement element);
  public virtual void ApplyConfiguration(Binding binding);
  public virtual Boolean CanAdd(BindingElementExtensionElement element);
  protected void OnApplyConfiguration(Binding binding);

  public sealed class CustomBindingElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<CustomBindingElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class DataContractSerializerElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  public Boolean IgnoreExtensionDataObject { get; set; }
  public Int32 MaxItemsInObjectGraph { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class DefaultPortElement
  : ConfigurationElement
  public Int32 Port { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String Scheme { get; set; }

  public sealed class DefaultPortElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<DefaultPortElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class DiagnosticSection
  : ConfigurationSection
  public EndToEndTracingElement EndToEndTracing { get; }
  public String EtwProviderId { get; set; }
  public MessageLoggingElement MessageLogging { get; }
  public PerformanceCounterScope PerformanceCounters { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Boolean WmiProviderEnabled { get; set; }

  public sealed class DispatcherSynchronizationElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public Boolean AsynchronousSendEnabled { get; set; }
  public virtual Type BehaviorType { get; }
  public Int32 MaxPendingReceives { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class DnsElement
  : ConfigurationElement
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String Value { get; set; }

  public class EndpointAddressElementBase
  : ServiceModelConfigurationElement
  public Uri Address { get; set; }
  public AddressHeaderCollectionElement Headers { get; }
  public IdentityElement Identity { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  internal protected void Copy(EndpointAddressElementBase source);
  public void InitializeFrom(EndpointAddress endpointAddress);

  public class EndpointBehaviorElement
  : NamedServiceModelExtensionCollectionElement`1<BehaviorExtensionElement>, ICollection`1<BehaviorExtensionElement>, IEnumerable`1<BehaviorExtensionElement>, IEnumerable, IConfigurationContextProviderInternal
  public virtual void Add(BehaviorExtensionElement element);
  public virtual Boolean CanAdd(BehaviorExtensionElement element);

  public sealed class EndpointBehaviorElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<EndpointBehaviorElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual void BaseAdd(ConfigurationElement element);
  protected virtual Object GetElementKey(ConfigurationElement element);

  public abstract class EndpointCollectionElement
  : ConfigurationElement, IConfigurationContextProviderInternal
  public abstract virtual ReadOnlyCollection`1<StandardEndpointElement> ConfiguredEndpoints { get; }
  public String EndpointName { get; }
  public abstract virtual Type EndpointType { get; }
  public abstract virtual Boolean ContainsKey(String name);
  internal protected abstract virtual StandardEndpointElement GetDefaultStandardEndpointElement();
  internal protected abstract virtual Boolean TryAdd(String name, ServiceEndpoint endpoint, Configuration config);

  public sealed class EndToEndTracingElement
  : ConfigurationElement
  public Boolean ActivityTracing { get; set; }
  public Boolean MessageFlowTracing { get; set; }
  public Boolean PropagateActivity { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public class ExtensionElement
  : ConfigurationElement
  public String Name { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String Type { get; set; }

  public class ExtensionElementCollection
  : ServiceModelConfigurationElementCollection`1<ExtensionElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual void BaseAdd(ConfigurationElement element);
  protected virtual void BaseAdd(Int32 index, ConfigurationElement element);
  protected virtual Object GetElementKey(ConfigurationElement element);

  public class ExtensionsSection
  : ConfigurationSection
  public ExtensionElementCollection BehaviorExtensions { get; }
  public ExtensionElementCollection BindingElementExtensions { get; }
  public ExtensionElementCollection BindingExtensions { get; }
  public ExtensionElementCollection EndpointExtensions { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  protected virtual void InitializeDefault();

  public sealed class FederatedMessageSecurityOverHttpElement
  : ServiceModelConfigurationElement
  public SecurityAlgorithmSuite AlgorithmSuite { get; set; }
  public ClaimTypeElementCollection ClaimTypeRequirements { get; }
  public Boolean EstablishSecurityContext { get; set; }
  public SecurityKeyType IssuedKeyType { get; set; }
  public String IssuedTokenType { get; set; }
  public IssuedTokenParametersEndpointAddressElement Issuer { get; }
  public EndpointAddressElementBase IssuerMetadata { get; }
  public Boolean NegotiateServiceCredential { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public XmlElementElementCollection TokenRequestParameters { get; }

  public sealed class HostElement
  : ConfigurationElement
  public BaseAddressElementCollection BaseAddresses { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public HostTimeoutsElement Timeouts { get; }

  public sealed class HostTimeoutsElement
  : ConfigurationElement
  public TimeSpan CloseTimeout { get; set; }
  public TimeSpan OpenTimeout { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class HttpDigestClientElement
  : ConfigurationElement
  public TokenImpersonationLevel ImpersonationLevel { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public void Copy(HttpDigestClientElement from);

  public class HttpsTransportElement
  : HttpTransportElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Boolean RequireClientCertificate { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  protected virtual TransportBindingElement CreateDefaultBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public class HttpTransportElement
  : TransportElement, IConfigurationContextProviderInternal
  public Boolean AllowCookies { get; set; }
  public AuthenticationSchemes AuthenticationScheme { get; set; }
  public virtual Type BindingElementType { get; }
  public Boolean BypassProxyOnLocal { get; set; }
  public Boolean DecompressionEnabled { get; set; }
  public ExtendedProtectionPolicyElement ExtendedProtectionPolicy { get; set; }
  public HostNameComparisonMode HostNameComparisonMode { get; set; }
  public String HttpMessageHandlerFactory { get; set; }
  public Boolean KeepAliveEnabled { get; set; }
  public Int32 MaxBufferSize { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Uri ProxyAddress { get; set; }
  public AuthenticationSchemes ProxyAuthenticationScheme { get; set; }
  public String Realm { get; set; }
  public TransferMode TransferMode { get; set; }
  public Boolean UnsafeConnectionNtlmAuthentication { get; set; }
  public Boolean UseDefaultWebProxy { get; set; }
  public WebSocketSettingsElement WebSocketSettings { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  protected virtual TransportBindingElement CreateDefaultBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class HttpTransportSecurityElement
  : ServiceModelConfigurationElement
  public HttpClientCredentialType ClientCredentialType { get; set; }
  public ExtendedProtectionPolicyElement ExtendedProtectionPolicy { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public HttpProxyCredentialType ProxyCredentialType { get; set; }
  public String Realm { get; set; }

  public abstract interface IBindingConfigurationElement
 
  public abstract virtual TimeSpan CloseTimeout { get; }
  public abstract virtual String Name { get; }
  public abstract virtual TimeSpan OpenTimeout { get; }
  public abstract virtual TimeSpan ReceiveTimeout { get; }
  public abstract virtual TimeSpan SendTimeout { get; }
  public abstract virtual void ApplyConfiguration(Binding binding);

  public sealed class IdentityElement
  : ConfigurationElement
  public CertificateElement Certificate { get; }
  public CertificateReferenceElement CertificateReference { get; }
  public DnsElement Dns { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public RsaElement Rsa { get; }
  public ServicePrincipalNameElement ServicePrincipalName { get; }
  public UserPrincipalNameElement UserPrincipalName { get; }
  public void InitializeFrom(EndpointIdentity identity);

  public sealed class IssuedTokenClientBehaviorsElement
  : ConfigurationElement
  public String BehaviorConfiguration { get; set; }
  public String IssuerAddress { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class IssuedTokenClientBehaviorsElementCollection
  : ServiceModelConfigurationElementCollection`1<IssuedTokenClientBehaviorsElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class IssuedTokenClientElement
  : ConfigurationElement
  public Boolean CacheIssuedTokens { get; set; }
  public SecurityKeyEntropyMode DefaultKeyEntropyMode { get; set; }
  public Int32 IssuedTokenRenewalThresholdPercentage { get; set; }
  public IssuedTokenClientBehaviorsElementCollection IssuerChannelBehaviors { get; }
  public IssuedTokenParametersEndpointAddressElement LocalIssuer { get; }
  public String LocalIssuerChannelBehaviors { get; set; }
  public TimeSpan MaxIssuedTokenCachingTime { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public void Copy(IssuedTokenClientElement from);

  public sealed class IssuedTokenParametersElement
  : ServiceModelConfigurationElement
  public XmlElementElementCollection AdditionalRequestParameters { get; }
  public ClaimTypeElementCollection ClaimTypeRequirements { get; }
  public MessageSecurityVersion DefaultMessageSecurityVersion { get; set; }
  public IssuedTokenParametersEndpointAddressElement Issuer { get; }
  public EndpointAddressElementBase IssuerMetadata { get; }
  public Int32 KeySize { get; set; }
  public SecurityKeyType KeyType { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String TokenType { get; set; }
  public Boolean UseStrTransform { get; set; }
  protected virtual Boolean SerializeToXmlElement(XmlWriter writer, String elementName);
  protected virtual void Unmerge(ConfigurationElement sourceElement, ConfigurationElement parentElement, ConfigurationSaveMode saveMode);

  public sealed class IssuedTokenParametersEndpointAddressElement
  : EndpointAddressElementBase, IConfigurationContextProviderInternal
  public String Binding { get; set; }
  public String BindingConfiguration { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class IssuedTokenServiceElement
  : ConfigurationElement
  public AllowedAudienceUriElementCollection AllowedAudienceUris { get; }
  public Boolean AllowUntrustedRsaIssuers { get; set; }
  public AudienceUriMode AudienceUriMode { get; set; }
  public X509CertificateValidationMode CertificateValidationMode { get; set; }
  public String CustomCertificateValidatorType { get; set; }
  public X509CertificateTrustedIssuerElementCollection KnownCertificates { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public X509RevocationMode RevocationMode { get; set; }
  public String SamlSerializerType { get; set; }
  public StoreLocation TrustedStoreLocation { get; set; }
  public void Copy(IssuedTokenServiceElement from);

  public sealed class LocalClientSecuritySettingsElement
  : ServiceModelConfigurationElement
  public Boolean CacheCookies { get; set; }
  public Int32 CookieRenewalThresholdPercentage { get; set; }
  public Boolean DetectReplays { get; set; }
  public TimeSpan MaxClockSkew { get; set; }
  public TimeSpan MaxCookieCachingTime { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Boolean ReconnectTransportOnFailure { get; set; }
  public Int32 ReplayCacheSize { get; set; }
  public TimeSpan ReplayWindow { get; set; }
  public TimeSpan SessionKeyRenewalInterval { get; set; }
  public TimeSpan SessionKeyRolloverInterval { get; set; }
  public TimeSpan TimestampValidityDuration { get; set; }

  public sealed class LocalServiceSecuritySettingsElement
  : ServiceModelConfigurationElement
  public Boolean DetectReplays { get; set; }
  public TimeSpan InactivityTimeout { get; set; }
  public TimeSpan IssuedCookieLifetime { get; set; }
  public Int32 MaxCachedCookies { get; set; }
  public TimeSpan MaxClockSkew { get; set; }
  public Int32 MaxPendingSessions { get; set; }
  public Int32 MaxStatefulNegotiations { get; set; }
  public TimeSpan NegotiationTimeout { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Boolean ReconnectTransportOnFailure { get; set; }
  public Int32 ReplayCacheSize { get; set; }
  public TimeSpan ReplayWindow { get; set; }
  public TimeSpan SessionKeyRenewalInterval { get; set; }
  public TimeSpan SessionKeyRolloverInterval { get; set; }
  public TimeSpan TimestampValidityDuration { get; set; }

  public sealed class MessageLoggingElement
  : ConfigurationElement
  public XPathMessageFilterElementCollection Filters { get; }
  public Boolean LogEntireMessage { get; set; }
  public Boolean LogKnownPii { get; set; }
  public Boolean LogMalformedMessages { get; set; }
  public Boolean LogMessagesAtServiceLevel { get; set; }
  public Boolean LogMessagesAtTransportLevel { get; set; }
  public Int32 MaxMessagesToLog { get; set; }
  public Int32 MaxSizeOfMessageToLog { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public class MessageSecurityOverHttpElement
  : ServiceModelConfigurationElement
  public SecurityAlgorithmSuite AlgorithmSuite { get; set; }
  public MessageCredentialType ClientCredentialType { get; set; }
  public Boolean NegotiateServiceCredential { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class MessageSecurityOverMsmqElement
  : ServiceModelConfigurationElement
  public SecurityAlgorithmSuite AlgorithmSuite { get; set; }
  public MessageCredentialType ClientCredentialType { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class MessageSecurityOverTcpElement
  : ServiceModelConfigurationElement
  public SecurityAlgorithmSuite AlgorithmSuite { get; set; }
  public MessageCredentialType ClientCredentialType { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class MetadataElement
  : ConfigurationElement
  public PolicyImporterElementCollection PolicyImporters { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public WsdlImporterElementCollection WsdlImporters { get; }
  public Collection`1<IPolicyImportExtension> LoadPolicyImportExtensions();
  public Collection`1<IWsdlImportExtension> LoadWsdlImportExtensions();

  public abstract class MexBindingBindingCollectionElement`2<TStandardBinding, TBindingConfiguration>
  : StandardBindingCollectionElement`2<TStandardBinding, TBindingConfiguration>, IConfigurationContextProviderInternal where TStandardBinding : Binding, TBindingConfiguration : StandardBindingElement
  internal protected virtual Boolean TryAdd(String name, Binding binding, Configuration config);

  public abstract class MexBindingElement`1<TStandardBinding>
  : StandardBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal where TStandardBinding : Binding
  protected virtual Type BindingElementType { get; }
  protected virtual void OnApplyConfiguration(Binding binding);

  public class MexHttpBindingCollectionElement
  : MexBindingBindingCollectionElement`2<WSHttpBinding, MexHttpBindingElement>, IConfigurationContextProviderInternal
  internal protected virtual Binding GetDefault();

  public class MexHttpBindingElement
  : MexBindingElement`1<WSHttpBinding>, IBindingConfigurationElement, IConfigurationContextProviderInternal

  public class MexHttpsBindingCollectionElement
  : MexBindingBindingCollectionElement`2<WSHttpBinding, MexHttpsBindingElement>, IConfigurationContextProviderInternal
  internal protected virtual Binding GetDefault();

  public class MexHttpsBindingElement
  : MexBindingElement`1<WSHttpBinding>, IBindingConfigurationElement, IConfigurationContextProviderInternal

  public class MexNamedPipeBindingCollectionElement
  : MexBindingBindingCollectionElement`2<CustomBinding, MexNamedPipeBindingElement>, IConfigurationContextProviderInternal
  internal protected virtual Binding GetDefault();

  public class MexNamedPipeBindingElement
  : MexBindingElement`1<CustomBinding>, IBindingConfigurationElement, IConfigurationContextProviderInternal

  public class MexTcpBindingCollectionElement
  : MexBindingBindingCollectionElement`2<CustomBinding, MexTcpBindingElement>, IConfigurationContextProviderInternal
  internal protected virtual Binding GetDefault();

  public class MexTcpBindingElement
  : MexBindingElement`1<CustomBinding>, IBindingConfigurationElement, IConfigurationContextProviderInternal

  public abstract class MsmqBindingElementBase
  : StandardBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  public Uri CustomDeadLetterQueue { get; set; }
  public DeadLetterQueue DeadLetterQueue { get; set; }
  public Boolean Durable { get; set; }
  public Boolean ExactlyOnce { get; set; }
  public Int64 MaxReceivedMessageSize { get; set; }
  public Int32 MaxRetryCycles { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Boolean ReceiveContextEnabled { get; set; }
  public ReceiveErrorHandling ReceiveErrorHandling { get; set; }
  public Int32 ReceiveRetryCount { get; set; }
  public TimeSpan RetryCycleDelay { get; set; }
  public TimeSpan TimeToLive { get; set; }
  public Boolean UseMsmqTracing { get; set; }
  public Boolean UseSourceJournal { get; set; }
  public TimeSpan ValidityDuration { get; set; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public abstract class MsmqElementBase
  : TransportElement, IConfigurationContextProviderInternal
  public Uri CustomDeadLetterQueue { get; set; }
  public DeadLetterQueue DeadLetterQueue { get; set; }
  public Boolean Durable { get; set; }
  public Boolean ExactlyOnce { get; set; }
  public Int32 MaxRetryCycles { get; set; }
  public MsmqTransportSecurityElement MsmqTransportSecurity { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Boolean ReceiveContextEnabled { get; set; }
  public ReceiveErrorHandling ReceiveErrorHandling { get; set; }
  public Int32 ReceiveRetryCount { get; set; }
  public TimeSpan RetryCycleDelay { get; set; }
  public TimeSpan TimeToLive { get; set; }
  public Boolean UseMsmqTracing { get; set; }
  public Boolean UseSourceJournal { get; set; }
  public TimeSpan ValidityDuration { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public class MsmqIntegrationBindingCollectionElement
  : StandardBindingCollectionElement`2<MsmqIntegrationBinding, MsmqIntegrationBindingElement>, IConfigurationContextProviderInternal

  public class MsmqIntegrationBindingElement
  : MsmqBindingElementBase, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public MsmqIntegrationSecurityElement Security { get; }
  public MsmqMessageSerializationFormat SerializationFormat { get; set; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public sealed class MsmqIntegrationElement
  : MsmqElementBase, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public MsmqMessageSerializationFormat SerializationFormat { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  protected virtual TransportBindingElement CreateDefaultBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class MsmqIntegrationSecurityElement
  : ServiceModelConfigurationElement
  public MsmqIntegrationSecurityMode Mode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public MsmqTransportSecurityElement Transport { get; }

  public sealed class MsmqTransportElement
  : MsmqElementBase, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  public Int32 MaxPoolSize { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public QueueTransferProtocol QueueTransferProtocol { get; set; }
  public Boolean UseActiveDirectory { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  protected virtual TransportBindingElement CreateDefaultBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class MsmqTransportSecurityElement
  : ServiceModelConfigurationElement
  public MsmqAuthenticationMode MsmqAuthenticationMode { get; set; }
  public MsmqEncryptionAlgorithm MsmqEncryptionAlgorithm { get; set; }
  public ProtectionLevel MsmqProtectionLevel { get; set; }
  public MsmqSecureHashAlgorithm MsmqSecureHashAlgorithm { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class MtomMessageEncodingElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  public Int32 MaxBufferSize { get; set; }
  public Int32 MaxReadPoolSize { get; set; }
  public Int32 MaxWritePoolSize { get; set; }
  public MessageVersion MessageVersion { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public XmlDictionaryReaderQuotasElement ReaderQuotas { get; }
  public Encoding WriteEncoding { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class NamedPipeConnectionPoolSettingsElement
  : ServiceModelConfigurationElement
  public String GroupName { get; set; }
  public TimeSpan IdleTimeout { get; set; }
  public Int32 MaxOutboundConnectionsPerEndpoint { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class NamedPipeSettingsElement
  : ServiceModelConfigurationElement
  public ApplicationContainerSettingsElement ApplicationContainerSettings { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class NamedPipeTransportElement
  : ConnectionOrientedTransportElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  public NamedPipeConnectionPoolSettingsElement ConnectionPoolSettings { get; set; }
  public NamedPipeSettingsElement PipeSettings { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  protected virtual TransportBindingElement CreateDefaultBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class NamedPipeTransportSecurityElement
  : ServiceModelConfigurationElement
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public ProtectionLevel ProtectionLevel { get; set; }

  public abstract class NamedServiceModelExtensionCollectionElement`1<TServiceModelExtensionElement>
  : ServiceModelExtensionCollectionElement`1<TServiceModelExtensionElement>, ICollection`1<TServiceModelExtensionElement>, IEnumerable`1<TServiceModelExtensionElement>, IEnumerable, IConfigurationContextProviderInternal where TServiceModelExtensionElement : ServiceModelExtensionElement
  public virtual String Name { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public class NetHttpBindingCollectionElement
  : StandardBindingCollectionElement`2<NetHttpBinding, NetHttpBindingElement>, IConfigurationContextProviderInternal

  public sealed class NetHttpBindingElement
  : BaseHttpBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public NetHttpMessageEncoding MessageEncoding { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public StandardBindingOptionalReliableSessionElement ReliableSession { get; }
  public BasicHttpSecurityElement Security { get; }
  public WebSocketSettingsElement WebSocketSettings { get; set; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public class NetHttpsBindingCollectionElement
  : StandardBindingCollectionElement`2<NetHttpsBinding, NetHttpsBindingElement>, IConfigurationContextProviderInternal

  public sealed class NetHttpsBindingElement
  : BaseHttpBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public NetHttpMessageEncoding MessageEncoding { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public StandardBindingOptionalReliableSessionElement ReliableSession { get; }
  public BasicHttpsSecurityElement Security { get; }
  public WebSocketSettingsElement WebSocketSettings { get; set; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public class NetMsmqBindingCollectionElement
  : StandardBindingCollectionElement`2<NetMsmqBinding, NetMsmqBindingElement>, IConfigurationContextProviderInternal

  public class NetMsmqBindingElement
  : MsmqBindingElementBase, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public Int64 MaxBufferPoolSize { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public QueueTransferProtocol QueueTransferProtocol { get; set; }
  public XmlDictionaryReaderQuotasElement ReaderQuotas { get; }
  public NetMsmqSecurityElement Security { get; }
  public Boolean UseActiveDirectory { get; set; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public sealed class NetMsmqSecurityElement
  : ServiceModelConfigurationElement
  public MessageSecurityOverMsmqElement Message { get; }
  public NetMsmqSecurityMode Mode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public MsmqTransportSecurityElement Transport { get; }

  public class NetNamedPipeBindingCollectionElement
  : StandardBindingCollectionElement`2<NetNamedPipeBinding, NetNamedPipeBindingElement>, IConfigurationContextProviderInternal

  public class NetNamedPipeBindingElement
  : StandardBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public HostNameComparisonMode HostNameComparisonMode { get; set; }
  public Int64 MaxBufferPoolSize { get; set; }
  public Int32 MaxBufferSize { get; set; }
  public Int32 MaxConnections { get; set; }
  public Int64 MaxReceivedMessageSize { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public XmlDictionaryReaderQuotasElement ReaderQuotas { get; }
  public NetNamedPipeSecurityElement Security { get; }
  public Boolean TransactionFlow { get; set; }
  public TransactionProtocol TransactionProtocol { get; set; }
  public TransferMode TransferMode { get; set; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public sealed class NetNamedPipeSecurityElement
  : ServiceModelConfigurationElement
  public NetNamedPipeSecurityMode Mode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public NamedPipeTransportSecurityElement Transport { get; }

  public class NetPeerTcpBindingCollectionElement
  : StandardBindingCollectionElement`2<NetPeerTcpBinding, NetPeerTcpBindingElement>, IConfigurationContextProviderInternal

  public class NetPeerTcpBindingElement
  : StandardBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public IPAddress ListenIPAddress { get; set; }
  public Int64 MaxBufferPoolSize { get; set; }
  public Int64 MaxReceivedMessageSize { get; set; }
  public Int32 Port { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public XmlDictionaryReaderQuotasElement ReaderQuotas { get; }
  public PeerResolverElement Resolver { get; }
  public PeerSecurityElement Security { get; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public class NetTcpBindingCollectionElement
  : StandardBindingCollectionElement`2<NetTcpBinding, NetTcpBindingElement>, IConfigurationContextProviderInternal

  public class NetTcpBindingElement
  : StandardBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public HostNameComparisonMode HostNameComparisonMode { get; set; }
  public Int32 ListenBacklog { get; set; }
  public Int64 MaxBufferPoolSize { get; set; }
  public Int32 MaxBufferSize { get; set; }
  public Int32 MaxConnections { get; set; }
  public Int64 MaxReceivedMessageSize { get; set; }
  public Boolean PortSharingEnabled { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public XmlDictionaryReaderQuotasElement ReaderQuotas { get; }
  public StandardBindingOptionalReliableSessionElement ReliableSession { get; }
  public NetTcpSecurityElement Security { get; }
  public Boolean TransactionFlow { get; set; }
  public TransactionProtocol TransactionProtocol { get; set; }
  public TransferMode TransferMode { get; set; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public class NetTcpContextBindingCollectionElement
  : StandardBindingCollectionElement`2<NetTcpContextBinding, NetTcpContextBindingElement>, IConfigurationContextProviderInternal

  public class NetTcpContextBindingElement
  : NetTcpBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public Uri ClientCallbackAddress { get; set; }
  public Boolean ContextManagementEnabled { get; set; }
  public ProtectionLevel ContextProtectionLevel { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public sealed class NetTcpSecurityElement
  : ServiceModelConfigurationElement
  public MessageSecurityOverTcpElement Message { get; }
  public SecurityMode Mode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public TcpTransportSecurityElement Transport { get; }

  public sealed class NonDualMessageSecurityOverHttpElement
  : MessageSecurityOverHttpElement
  public Boolean EstablishSecurityContext { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class OneWayElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  public ChannelPoolSettingsElement ChannelPoolSettings { get; }
  public Int32 MaxAcceptedChannels { get; set; }
  public Boolean PacketRoutable { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class PeerCredentialElement
  : ConfigurationElement
  public X509PeerCertificateElement Certificate { get; }
  public X509PeerCertificateAuthenticationElement MessageSenderAuthentication { get; }
  public X509PeerCertificateAuthenticationElement PeerAuthentication { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public void Copy(PeerCredentialElement from);

  public sealed class PeerCustomResolverElement
  : ServiceModelConfigurationElement
  public Uri Address { get; set; }
  public String Binding { get; set; }
  public String BindingConfiguration { get; set; }
  public AddressHeaderCollectionElement Headers { get; }
  public IdentityElement Identity { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String ResolverType { get; set; }

  public sealed class PeerResolverElement
  : ServiceModelConfigurationElement
  public PeerCustomResolverElement Custom { get; }
  public PeerResolverMode Mode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public PeerReferralPolicy ReferralPolicy { get; set; }

  public sealed class PeerSecurityElement
  : ServiceModelConfigurationElement
  public SecurityMode Mode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public PeerTransportSecurityElement Transport { get; }

  public class PeerTransportElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  public IPAddress ListenIPAddress { get; set; }
  public Int64 MaxBufferPoolSize { get; set; }
  public Int64 MaxReceivedMessageSize { get; set; }
  public Int32 Port { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public PeerSecurityElement Security { get; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class PeerTransportSecurityElement
  : ServiceModelConfigurationElement
  public PeerTransportCredentialType CredentialType { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public class PnrpPeerResolverElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  internal protected virtual BindingElement CreateBindingElement();

  public sealed class PolicyImporterElement
  : ConfigurationElement
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String Type { get; set; }

  public sealed class PolicyImporterElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<PolicyImporterElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public class PrivacyNoticeElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Uri Url { get; set; }
  public Int32 Version { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class ProtocolMappingElement
  : ConfigurationElement
  public String Binding { get; set; }
  public String BindingConfiguration { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String Scheme { get; set; }

  public sealed class ProtocolMappingElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<ProtocolMappingElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class ProtocolMappingSection
  : ConfigurationSection
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public ProtocolMappingElementCollection ProtocolMappingCollection { get; }
  protected virtual void InitializeDefault();

  public sealed class ReliableSessionElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public TimeSpan AcknowledgementInterval { get; set; }
  public virtual Type BindingElementType { get; }
  public Boolean FlowControlEnabled { get; set; }
  public TimeSpan InactivityTimeout { get; set; }
  public Int32 MaxPendingChannels { get; set; }
  public Int32 MaxRetryCount { get; set; }
  public Int32 MaxTransferWindowSize { get; set; }
  public Boolean Ordered { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public ReliableMessagingVersion ReliableMessagingVersion { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class RemoveBehaviorElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  public String Name { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class RsaElement
  : ConfigurationElement
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String Value { get; set; }

  public sealed class SecureConversationServiceElement
  : ConfigurationElement
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String SecurityStateEncoderType { get; set; }
  public void Copy(SecureConversationServiceElement from);

  public sealed class SecurityElement
  : SecurityElementBase, IConfigurationContextProviderInternal
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public SecurityElementBase SecureConversationBootstrap { get; }
  protected virtual void AddBindingTemplates(Dictionary`2<AuthenticationMode, SecurityBindingElement> bindingTemplates);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement(Boolean createTemplateOnly);
  protected virtual void InitializeNestedTokenParameterSettings(SecurityTokenParameters sp, Boolean initializeNestedBindings);

  public class SecurityElementBase
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public Boolean AllowInsecureTransport { get; set; }
  public Boolean AllowSerializedSigningTokenOnReply { get; set; }
  public AuthenticationMode AuthenticationMode { get; set; }
  public virtual Type BindingElementType { get; }
  public Boolean CanRenewSecurityContextToken { get; set; }
  public SecurityAlgorithmSuite DefaultAlgorithmSuite { get; set; }
  public Boolean EnableUnsecuredResponse { get; set; }
  public Boolean IncludeTimestamp { get; set; }
  public IssuedTokenParametersElement IssuedTokenParameters { get; }
  public SecurityKeyEntropyMode KeyEntropyMode { get; set; }
  public LocalClientSecuritySettingsElement LocalClientSettings { get; }
  public LocalServiceSecuritySettingsElement LocalServiceSettings { get; }
  public MessageProtectionOrder MessageProtectionOrder { get; set; }
  public MessageSecurityVersion MessageSecurityVersion { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Boolean ProtectTokens { get; set; }
  public Boolean RequireDerivedKeys { get; set; }
  public Boolean RequireSecurityContextCancellation { get; set; }
  public Boolean RequireSignatureConfirmation { get; set; }
  public SecurityHeaderLayout SecurityHeaderLayout { get; set; }
  protected void AddBindingTemplate(Dictionary`2<AuthenticationMode, SecurityBindingElement> bindingTemplates, AuthenticationMode mode);
  protected virtual void AddBindingTemplates(Dictionary`2<AuthenticationMode, SecurityBindingElement> bindingTemplates);
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual BindingElement CreateBindingElement(Boolean createTemplateOnly);
  internal protected virtual void InitializeFrom(BindingElement bindingElement);
  protected virtual void InitializeNestedTokenParameterSettings(SecurityTokenParameters sp, Boolean initializeNestedBindings);
  protected virtual Boolean SerializeElement(XmlWriter writer, Boolean serializeCollectionKey);
  protected virtual Boolean SerializeToXmlElement(XmlWriter writer, String elementName);
  protected virtual void Unmerge(ConfigurationElement sourceElement, ConfigurationElement parentElement, ConfigurationSaveMode saveMode);

  public sealed class ServiceActivationElement
  : ConfigurationElement
  public String Factory { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String RelativeAddress { get; set; }
  public String Service { get; set; }

  public sealed class ServiceActivationElementCollection
  : ServiceModelConfigurationElementCollection`1<ServiceActivationElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual ConfigurationElement CreateNewElement();
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class ServiceAuthenticationElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public AuthenticationSchemes AuthenticationSchemes { get; set; }
  public virtual Type BehaviorType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String ServiceAuthenticationManagerType { get; set; }
  internal protected virtual Object CreateBehavior();

  public sealed class ServiceAuthorizationElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public AuthorizationPolicyTypeElementCollection AuthorizationPolicies { get; }
  public virtual Type BehaviorType { get; }
  public Boolean ImpersonateCallerForAllOperations { get; set; }
  public Boolean ImpersonateOnSerializingReply { get; set; }
  public PrincipalPermissionMode PrincipalPermissionMode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String RoleProviderName { get; set; }
  public String ServiceAuthorizationManagerType { get; set; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public class ServiceBehaviorElement
  : NamedServiceModelExtensionCollectionElement`1<BehaviorExtensionElement>, ICollection`1<BehaviorExtensionElement>, IEnumerable`1<BehaviorExtensionElement>, IEnumerable, IConfigurationContextProviderInternal
  public virtual void Add(BehaviorExtensionElement element);
  public virtual Boolean CanAdd(BehaviorExtensionElement element);
  protected virtual void DeserializeElement(XmlReader reader, Boolean serializeCollectionKey);

  public sealed class ServiceBehaviorElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<ServiceBehaviorElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual void BaseAdd(ConfigurationElement element);
  protected virtual void DeserializeElement(XmlReader reader, Boolean serializeCollectionKey);
  protected virtual Object GetElementKey(ConfigurationElement element);

  public class ServiceCredentialsElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  public X509InitiatorCertificateServiceElement ClientCertificate { get; }
  public String IdentityConfiguration { get; set; }
  public IssuedTokenServiceElement IssuedTokenAuthentication { get; }
  public PeerCredentialElement Peer { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public SecureConversationServiceElement SecureConversationAuthentication { get; }
  public X509RecipientCertificateServiceElement ServiceCertificate { get; }
  public String Type { get; set; }
  public Boolean UseIdentityConfiguration { get; set; }
  public UserNameServiceElement UserNameAuthentication { get; }
  public WindowsServiceElement WindowsAuthentication { get; }
  internal protected void ApplyConfiguration(ServiceCredentials behavior);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class ServiceDebugElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  public String HttpHelpPageBinding { get; set; }
  public String HttpHelpPageBindingConfiguration { get; set; }
  public Boolean HttpHelpPageEnabled { get; set; }
  public Uri HttpHelpPageUrl { get; set; }
  public String HttpsHelpPageBinding { get; set; }
  public String HttpsHelpPageBindingConfiguration { get; set; }
  public Boolean HttpsHelpPageEnabled { get; set; }
  public Uri HttpsHelpPageUrl { get; set; }
  public Boolean IncludeExceptionDetailInFaults { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class ServiceElement
  : ConfigurationElement, IConfigurationContextProviderInternal
  public String BehaviorConfiguration { get; set; }
  public ServiceEndpointElementCollection Endpoints { get; }
  public HostElement Host { get; }
  public String Name { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  protected virtual void Reset(ConfigurationElement parentElement);

  public sealed class ServiceElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<ServiceElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class ServiceEndpointElement
  : ConfigurationElement, IConfigurationContextProviderInternal
  public Uri Address { get; set; }
  public String BehaviorConfiguration { get; set; }
  public String Binding { get; set; }
  public String BindingConfiguration { get; set; }
  public String BindingName { get; set; }
  public String BindingNamespace { get; set; }
  public String Contract { get; set; }
  public String EndpointConfiguration { get; set; }
  public AddressHeaderCollectionElement Headers { get; }
  public IdentityElement Identity { get; }
  public Boolean IsSystemEndpoint { get; set; }
  public String Kind { get; set; }
  public Uri ListenUri { get; set; }
  public ListenUriMode ListenUriMode { get; set; }
  public String Name { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class ServiceEndpointElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<ServiceEndpointElement>, ICollection, IEnumerable
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class ServiceHostingEnvironmentSection
  : ConfigurationSection
  public Boolean AspNetCompatibilityEnabled { get; set; }
  public BaseAddressPrefixFilterElementCollection BaseAddressPrefixFilters { get; }
  public Boolean CloseIdleServicesAtLowMemory { get; set; }
  public Int32 MinFreeMemoryPercentageToActivateService { get; set; }
  public Boolean MultipleSiteBindingsEnabled { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public ServiceActivationElementCollection ServiceActivations { get; }
  public TransportConfigurationTypeElementCollection TransportConfigurationTypes { get; }
  protected virtual void PostDeserialize();

  public class ServiceMetadataEndpointCollectionElement
  : StandardEndpointCollectionElement`2<ServiceMetadataEndpoint, ServiceMetadataEndpointElement>, IConfigurationContextProviderInternal

  public class ServiceMetadataEndpointElement
  : StandardEndpointElement, IConfigurationContextProviderInternal
  internal protected virtual Type EndpointType { get; }
  internal protected virtual ServiceEndpoint CreateServiceEndpoint(ContractDescription contractDescription);
  protected virtual void OnApplyConfiguration(ServiceEndpoint endpoint, ServiceEndpointElement serviceEndpointElement);
  protected virtual void OnApplyConfiguration(ServiceEndpoint endpoint, ChannelEndpointElement serviceEndpointElement);
  protected virtual void OnInitializeAndValidate(ChannelEndpointElement channelEndpointElement);
  protected virtual void OnInitializeAndValidate(ServiceEndpointElement serviceEndpointElement);

  public sealed class ServiceMetadataPublishingElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  public Uri ExternalMetadataLocation { get; set; }
  public String HttpGetBinding { get; set; }
  public String HttpGetBindingConfiguration { get; set; }
  public Boolean HttpGetEnabled { get; set; }
  public Uri HttpGetUrl { get; set; }
  public String HttpsGetBinding { get; set; }
  public String HttpsGetBindingConfiguration { get; set; }
  public Boolean HttpsGetEnabled { get; set; }
  public Uri HttpsGetUrl { get; set; }
  public PolicyVersion PolicyVersion { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public abstract class ServiceModelConfigurationElement
  : ConfigurationElement
  protected void SetPropertyValueIfNotDefaultValue(String propertyName, T value);

  public abstract class ServiceModelConfigurationElementCollection`1<ConfigurationElementType>
  : ConfigurationElementCollection, ICollection, IEnumerable where ConfigurationElementType : ConfigurationElement
  public virtual ConfigurationElementCollectionType CollectionType { get; }
  protected virtual String ElementName { get; }
  public virtual ConfigurationElementType Item { get; set; }
  public ConfigurationElementType Item { get; set; }
  public void Add(ConfigurationElementType element);
  protected virtual void BaseAdd(ConfigurationElement element);
  public void Clear();
  public virtual Boolean ContainsKey(Object key);
  public void CopyTo(ConfigurationElementType array, Int32 start);
  protected virtual ConfigurationElement CreateNewElement();
  public Int32 IndexOf(ConfigurationElementType element);
  public void Remove(ConfigurationElementType element);
  public void RemoveAt(Object key);
  public void RemoveAt(Int32 index);

  public abstract class ServiceModelEnhancedConfigurationElementCollection`1<TConfigurationElement>
  : ServiceModelConfigurationElementCollection`1<TConfigurationElement>, ICollection, IEnumerable where TConfigurationElement : ConfigurationElement
  protected virtual Boolean ThrowOnDuplicate { get; }
  protected virtual void BaseAdd(ConfigurationElement element);

  public abstract class ServiceModelExtensionCollectionElement`1<TServiceModelExtensionElement>
  : ConfigurationElement, ICollection`1<TServiceModelExtensionElement>, IEnumerable`1<TServiceModelExtensionElement>, IEnumerable, IConfigurationContextProviderInternal where TServiceModelExtensionElement : ServiceModelExtensionElement
  public virtual Int32 Count { get; }
  public TServiceModelExtensionElement Item { get; }
  public TServiceModelExtensionElement Item { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void Add(TServiceModelExtensionElement element);
  public virtual Boolean CanAdd(TServiceModelExtensionElement element);
  public virtual void Clear();
  public virtual Boolean Contains(TServiceModelExtensionElement element);
  public Boolean ContainsKey(Type elementType);
  public Boolean ContainsKey(String elementName);
  public virtual void CopyTo(TServiceModelExtensionElement elements, Int32 start);
  protected virtual void DeserializeElement(XmlReader reader, Boolean serializeCollectionKey);
  public virtual IEnumerator`1<TServiceModelExtensionElement> GetEnumerator();
  protected virtual Boolean IsModified();
  protected virtual Boolean OnDeserializeUnrecognizedElement(String elementName, XmlReader reader);
  public virtual Boolean Remove(TServiceModelExtensionElement element);
  protected virtual void Reset(ConfigurationElement parentElement);
  protected virtual void ResetModified();
  protected void SetIsModified();
  protected virtual void SetReadOnly();
  protected virtual void Unmerge(ConfigurationElement sourceElement, ConfigurationElement parentElement, ConfigurationSaveMode saveMode);

  public abstract class ServiceModelExtensionElement
  : ServiceModelConfigurationElement, IConfigurationContextProviderInternal
  public String ConfigurationElementName { get; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  protected virtual Boolean IsModified();
  protected virtual void Reset(ConfigurationElement parentElement);
  protected virtual Boolean SerializeElement(XmlWriter writer, Boolean serializeCollectionKey);

  public sealed class ServiceModelSectionGroup
  : ConfigurationSectionGroup
  public BehaviorsSection Behaviors { get; }
  public BindingsSection Bindings { get; }
  public ClientSection Client { get; }
  public ComContractsSection ComContracts { get; }
  public CommonBehaviorsSection CommonBehaviors { get; }
  public DiagnosticSection Diagnostic { get; }
  public ExtensionsSection Extensions { get; }
  public ProtocolMappingSection ProtocolMapping { get; }
  public ServiceHostingEnvironmentSection ServiceHostingEnvironment { get; }
  public ServicesSection Services { get; }
  public StandardEndpointsSection StandardEndpoints { get; }
  static public ServiceModelSectionGroup GetSectionGroup(Configuration config);

  public sealed class ServicePrincipalNameElement
  : ConfigurationElement
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String Value { get; set; }

  public sealed class ServiceSecurityAuditElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public AuditLogLocation AuditLogLocation { get; set; }
  public virtual Type BehaviorType { get; }
  public AuditLevel MessageAuthenticationAuditLevel { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public AuditLevel ServiceAuthorizationAuditLevel { get; set; }
  public Boolean SuppressAuditFailure { get; set; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class ServicesSection
  : ConfigurationSection, IConfigurationContextProviderInternal
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public ServiceElementCollection Services { get; }
  protected virtual void PostDeserialize();
  protected virtual void Reset(ConfigurationElement parentElement);

  public sealed class ServiceThrottlingElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  public Int32 MaxConcurrentCalls { get; set; }
  public Int32 MaxConcurrentInstances { get; set; }
  public Int32 MaxConcurrentSessions { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class ServiceTimeoutsElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public TimeSpan TransactionTimeout { get; set; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class SslStreamSecurityElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Boolean RequireClientCertificate { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public class StandardBindingCollectionElement`2<TStandardBinding, TBindingConfiguration>
  : BindingCollectionElement, IConfigurationContextProviderInternal where TStandardBinding : Binding, TBindingConfiguration : StandardBindingElement
  public StandardBindingElementCollection`1<TBindingConfiguration> Bindings { get; }
  public virtual Type BindingType { get; }
  public virtual ReadOnlyCollection`1<IBindingConfigurationElement> ConfiguredBindings { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual Boolean ContainsKey(String name);
  internal protected virtual Binding GetDefault();
  internal protected virtual Boolean TryAdd(String name, Binding binding, Configuration config);

  public abstract class StandardBindingElement
  : ServiceModelConfigurationElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected abstract virtual Type BindingElementType { get; }
  public virtual TimeSpan CloseTimeout { get; set; }
  public virtual String Name { get; set; }
  public virtual TimeSpan OpenTimeout { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual TimeSpan ReceiveTimeout { get; set; }
  public virtual TimeSpan SendTimeout { get; set; }
  public virtual void ApplyConfiguration(Binding binding);
  internal protected virtual void InitializeFrom(Binding binding);
  protected abstract virtual void OnApplyConfiguration(Binding binding);
  protected virtual void Reset(ConfigurationElement parentElement);

  public sealed class StandardBindingElementCollection`1<TBindingConfiguration>
  : ServiceModelEnhancedConfigurationElementCollection`1<TBindingConfiguration>, ICollection, IEnumerable where TBindingConfiguration : StandardBindingElement
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class StandardBindingOptionalReliableSessionElement
  : StandardBindingReliableSessionElement
  public Boolean Enabled { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public void ApplyConfiguration(OptionalReliableSession optionalReliableSession);
  public void InitializeFrom(OptionalReliableSession optionalReliableSession);

  public class StandardBindingReliableSessionElement
  : ServiceModelConfigurationElement
  public TimeSpan InactivityTimeout { get; set; }
  public Boolean Ordered { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public void ApplyConfiguration(ReliableSession reliableSession);
  public void InitializeFrom(ReliableSession reliableSession);

  public class StandardEndpointCollectionElement`2<TStandardEndpoint, TEndpointConfiguration>
  : EndpointCollectionElement, IConfigurationContextProviderInternal where TStandardEndpoint : ServiceEndpoint, TEndpointConfiguration : StandardEndpointElement
  public virtual ReadOnlyCollection`1<StandardEndpointElement> ConfiguredEndpoints { get; }
  public StandardEndpointElementCollection`1<TEndpointConfiguration> Endpoints { get; }
  public virtual Type EndpointType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual Boolean ContainsKey(String name);
  internal protected virtual StandardEndpointElement GetDefaultStandardEndpointElement();
  internal protected virtual Boolean TryAdd(String name, ServiceEndpoint endpoint, Configuration config);

  public abstract class StandardEndpointElement
  : ConfigurationElement, IConfigurationContextProviderInternal
  internal protected abstract virtual Type EndpointType { get; }
  public String Name { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public void ApplyConfiguration(ServiceEndpoint endpoint, ChannelEndpointElement channelEndpointElement);
  public void ApplyConfiguration(ServiceEndpoint endpoint, ServiceEndpointElement serviceEndpointElement);
  internal protected abstract virtual ServiceEndpoint CreateServiceEndpoint(ContractDescription contractDescription);
  public void InitializeAndValidate(ChannelEndpointElement channelEndpointElement);
  public void InitializeAndValidate(ServiceEndpointElement serviceEndpointElement);
  internal protected virtual void InitializeFrom(ServiceEndpoint endpoint);
  protected abstract virtual void OnApplyConfiguration(ServiceEndpoint endpoint, ChannelEndpointElement channelEndpointElement);
  protected abstract virtual void OnApplyConfiguration(ServiceEndpoint endpoint, ServiceEndpointElement serviceEndpointElement);
  protected abstract virtual void OnInitializeAndValidate(ChannelEndpointElement channelEndpointElement);
  protected abstract virtual void OnInitializeAndValidate(ServiceEndpointElement serviceEndpointElement);
  protected virtual void Reset(ConfigurationElement parentElement);

  public sealed class StandardEndpointElementCollection`1<TEndpointConfiguration>
  : ServiceModelEnhancedConfigurationElementCollection`1<TEndpointConfiguration>, ICollection, IEnumerable where TEndpointConfiguration : StandardEndpointElement
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class StandardEndpointsSection
  : ConfigurationSection, IConfigurationContextProviderInternal
  public List`1<EndpointCollectionElement> EndpointCollections { get; }
  public EndpointCollectionElement Item { get; }
  public ServiceMetadataEndpointCollectionElement MexEndpoint { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  static public StandardEndpointsSection GetSection(Configuration config);
  protected virtual Boolean OnDeserializeUnrecognizedElement(String elementName, XmlReader reader);

  public sealed class SynchronousReceiveElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  internal protected virtual Object CreateBehavior();

  public sealed class TcpConnectionPoolSettingsElement
  : ServiceModelConfigurationElement
  public String GroupName { get; set; }
  public TimeSpan IdleTimeout { get; set; }
  public TimeSpan LeaseTimeout { get; set; }
  public Int32 MaxOutboundConnectionsPerEndpoint { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class TcpTransportElement
  : ConnectionOrientedTransportElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  public TcpConnectionPoolSettingsElement ConnectionPoolSettings { get; set; }
  public ExtendedProtectionPolicyElement ExtendedProtectionPolicy { get; set; }
  public Int32 ListenBacklog { get; set; }
  public Boolean PortSharingEnabled { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Boolean TeredoEnabled { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  protected virtual TransportBindingElement CreateDefaultBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class TcpTransportSecurityElement
  : ServiceModelConfigurationElement
  public TcpClientCredentialType ClientCredentialType { get; set; }
  public ExtendedProtectionPolicyElement ExtendedProtectionPolicy { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public ProtectionLevel ProtectionLevel { get; set; }

  public sealed class TextMessageEncodingElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  public Int32 MaxReadPoolSize { get; set; }
  public Int32 MaxWritePoolSize { get; set; }
  public MessageVersion MessageVersion { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public XmlDictionaryReaderQuotasElement ReaderQuotas { get; }
  public Encoding WriteEncoding { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class TransactedBatchingElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  public Int32 MaxBatchSize { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public class TransactionFlowElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public Boolean AllowWildcardAction { get; set; }
  public virtual Type BindingElementType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public TransactionProtocol TransactionProtocol { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public sealed class TransportConfigurationTypeElement
  : ConfigurationElement
  public String Name { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String TransportConfigurationType { get; set; }

  public sealed class TransportConfigurationTypeElementCollection
  : ServiceModelConfigurationElementCollection`1<TransportConfigurationTypeElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public abstract class TransportElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public Boolean ManualAddressing { get; set; }
  public Int64 MaxBufferPoolSize { get; set; }
  public Int64 MaxReceivedMessageSize { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  protected abstract virtual TransportBindingElement CreateDefaultBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public class UseManagedPresentationElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  internal protected virtual BindingElement CreateBindingElement();

  public sealed class UseRequestHeadersForMetadataAddressElement
  : BehaviorExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BehaviorType { get; }
  public DefaultPortElementCollection DefaultPorts { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual Object CreateBehavior();

  public sealed class UserNameServiceElement
  : ConfigurationElement
  public TimeSpan CachedLogonTokenLifetime { get; set; }
  public Boolean CacheLogonTokens { get; set; }
  public String CustomUserNamePasswordValidatorType { get; set; }
  public Boolean IncludeWindowsGroups { get; set; }
  public Int32 MaxCachedLogonTokens { get; set; }
  public String MembershipProviderName { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public UserNamePasswordValidationMode UserNamePasswordValidationMode { get; set; }
  public void Copy(UserNameServiceElement from);

  public sealed class UserPrincipalNameElement
  : ConfigurationElement
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String Value { get; set; }

  public sealed class WebSocketSettingsElement
  : ServiceModelConfigurationElement
  public WebSocketConnectionMode ConnectionMode { get; set; }
  public Boolean MaskingDisabled { get; set; }
  public Boolean OpenNotificationEnabled { get; set; }
  public TimeSpan PingFrequency { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Int32 ReceiveBufferSize { get; set; }
  public Int32 SendBufferSize { get; set; }
  public String SubProtocol { get; set; }
  public void ApplyConfiguration(WebSocketSettings settings);
  public void InitializeFrom(WebSocketSettings settings);

  public sealed class WindowsClientElement
  : ConfigurationElement
  public TokenImpersonationLevel AllowedImpersonationLevel { get; set; }
  public Boolean AllowNtlm { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public void Copy(WindowsClientElement from);

  public sealed class WindowsServiceElement
  : ConfigurationElement
  public Boolean AllowAnonymousLogons { get; set; }
  public Boolean IncludeWindowsGroups { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public void Copy(WindowsServiceElement from);

  public sealed class WindowsStreamSecurityElement
  : BindingElementExtensionElement, IConfigurationContextProviderInternal
  public virtual Type BindingElementType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public ProtectionLevel ProtectionLevel { get; set; }
  public virtual void ApplyConfiguration(BindingElement bindingElement);
  public virtual void CopyFrom(ServiceModelExtensionElement from);
  internal protected virtual BindingElement CreateBindingElement();
  internal protected virtual void InitializeFrom(BindingElement bindingElement);

  public class WS2007FederationHttpBindingCollectionElement
  : StandardBindingCollectionElement`2<WS2007FederationHttpBinding, WS2007FederationHttpBindingElement>, IConfigurationContextProviderInternal

  public class WS2007FederationHttpBindingElement
  : WSFederationHttpBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }

  public class WS2007HttpBindingCollectionElement
  : StandardBindingCollectionElement`2<WS2007HttpBinding, WS2007HttpBindingElement>, IConfigurationContextProviderInternal

  public class WS2007HttpBindingElement
  : WSHttpBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }

  public sealed class WsdlImporterElement
  : ConfigurationElement
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public String Type { get; set; }

  public sealed class WsdlImporterElementCollection
  : ServiceModelEnhancedConfigurationElementCollection`1<WsdlImporterElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public class WSDualHttpBindingCollectionElement
  : StandardBindingCollectionElement`2<WSDualHttpBinding, WSDualHttpBindingElement>, IConfigurationContextProviderInternal

  public class WSDualHttpBindingElement
  : StandardBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public Boolean BypassProxyOnLocal { get; set; }
  public Uri ClientBaseAddress { get; set; }
  public HostNameComparisonMode HostNameComparisonMode { get; set; }
  public Int64 MaxBufferPoolSize { get; set; }
  public Int64 MaxReceivedMessageSize { get; set; }
  public WSMessageEncoding MessageEncoding { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Uri ProxyAddress { get; set; }
  public XmlDictionaryReaderQuotasElement ReaderQuotas { get; }
  public StandardBindingReliableSessionElement ReliableSession { get; }
  public WSDualHttpSecurityElement Security { get; }
  public Encoding TextEncoding { get; set; }
  public Boolean TransactionFlow { get; set; }
  public Boolean UseDefaultWebProxy { get; set; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public sealed class WSDualHttpSecurityElement
  : ServiceModelConfigurationElement
  public MessageSecurityOverHttpElement Message { get; }
  public WSDualHttpSecurityMode Mode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public class WSFederationHttpBindingCollectionElement
  : StandardBindingCollectionElement`2<WSFederationHttpBinding, WSFederationHttpBindingElement>, IConfigurationContextProviderInternal

  public class WSFederationHttpBindingElement
  : WSHttpBindingBaseElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public Uri PrivacyNoticeAt { get; set; }
  public Int32 PrivacyNoticeVersion { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public WSFederationHttpSecurityElement Security { get; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public sealed class WSFederationHttpSecurityElement
  : ServiceModelConfigurationElement
  public FederatedMessageSecurityOverHttpElement Message { get; }
  public WSFederationHttpSecurityMode Mode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public abstract class WSHttpBindingBaseElement
  : StandardBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  public Boolean BypassProxyOnLocal { get; set; }
  public HostNameComparisonMode HostNameComparisonMode { get; set; }
  public Int64 MaxBufferPoolSize { get; set; }
  public Int64 MaxReceivedMessageSize { get; set; }
  public WSMessageEncoding MessageEncoding { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public Uri ProxyAddress { get; set; }
  public XmlDictionaryReaderQuotasElement ReaderQuotas { get; }
  public StandardBindingOptionalReliableSessionElement ReliableSession { get; }
  public Encoding TextEncoding { get; set; }
  public Boolean TransactionFlow { get; set; }
  public Boolean UseDefaultWebProxy { get; set; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public class WSHttpBindingCollectionElement
  : StandardBindingCollectionElement`2<WSHttpBinding, WSHttpBindingElement>, IConfigurationContextProviderInternal

  public class WSHttpBindingElement
  : WSHttpBindingBaseElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  public Boolean AllowCookies { get; set; }
  protected virtual Type BindingElementType { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public WSHttpSecurityElement Security { get; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public class WSHttpContextBindingCollectionElement
  : StandardBindingCollectionElement`2<WSHttpContextBinding, WSHttpContextBindingElement>, IConfigurationContextProviderInternal

  public class WSHttpContextBindingElement
  : WSHttpBindingElement, IBindingConfigurationElement, IConfigurationContextProviderInternal
  protected virtual Type BindingElementType { get; }
  public Uri ClientCallbackAddress { get; set; }
  public Boolean ContextManagementEnabled { get; set; }
  public ProtectionLevel ContextProtectionLevel { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  internal protected virtual void InitializeFrom(Binding binding);
  protected virtual void OnApplyConfiguration(Binding binding);

  public sealed class WSHttpSecurityElement
  : ServiceModelConfigurationElement
  public NonDualMessageSecurityOverHttpElement Message { get; }
  public SecurityMode Mode { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public WSHttpTransportSecurityElement Transport { get; }

  public sealed class WSHttpTransportSecurityElement
  : ServiceModelConfigurationElement
  public HttpClientCredentialType ClientCredentialType { get; set; }
  public ExtendedProtectionPolicyElement ExtendedProtectionPolicy { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public HttpProxyCredentialType ProxyCredentialType { get; set; }
  public String Realm { get; set; }

  public sealed class X509CertificateTrustedIssuerElement
  : ConfigurationElement
  public String FindValue { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public StoreLocation StoreLocation { get; set; }
  public StoreName StoreName { get; set; }
  public X509FindType X509FindType { get; set; }
  public void Copy(X509CertificateTrustedIssuerElement from);

  public sealed class X509CertificateTrustedIssuerElementCollection
  : ServiceModelConfigurationElementCollection`1<X509CertificateTrustedIssuerElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class X509ClientCertificateAuthenticationElement
  : ConfigurationElement
  public X509CertificateValidationMode CertificateValidationMode { get; set; }
  public String CustomCertificateValidatorType { get; set; }
  public Boolean IncludeWindowsGroups { get; set; }
  public Boolean MapClientCertificateToWindowsAccount { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public X509RevocationMode RevocationMode { get; set; }
  public StoreLocation TrustedStoreLocation { get; set; }
  public void Copy(X509ClientCertificateAuthenticationElement from);

  public sealed class X509ClientCertificateCredentialsElement
  : ConfigurationElement
  public String FindValue { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public StoreLocation StoreLocation { get; set; }
  public StoreName StoreName { get; set; }
  public X509FindType X509FindType { get; set; }
  public void Copy(X509ClientCertificateCredentialsElement from);

  public sealed class X509DefaultServiceCertificateElement
  : ConfigurationElement
  public String FindValue { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public StoreLocation StoreLocation { get; set; }
  public StoreName StoreName { get; set; }
  public X509FindType X509FindType { get; set; }
  public void Copy(X509DefaultServiceCertificateElement from);

  public sealed class X509InitiatorCertificateClientElement
  : ConfigurationElement
  public String FindValue { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public StoreLocation StoreLocation { get; set; }
  public StoreName StoreName { get; set; }
  public X509FindType X509FindType { get; set; }
  public void Copy(X509InitiatorCertificateClientElement from);

  public sealed class X509InitiatorCertificateServiceElement
  : ConfigurationElement
  public X509ClientCertificateAuthenticationElement Authentication { get; }
  public X509ClientCertificateCredentialsElement Certificate { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public void Copy(X509InitiatorCertificateServiceElement from);

  public sealed class X509PeerCertificateAuthenticationElement
  : ConfigurationElement
  public X509CertificateValidationMode CertificateValidationMode { get; set; }
  public String CustomCertificateValidatorType { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public X509RevocationMode RevocationMode { get; set; }
  public StoreLocation TrustedStoreLocation { get; set; }
  public void Copy(X509PeerCertificateAuthenticationElement from);

  public sealed class X509PeerCertificateElement
  : ConfigurationElement
  public String FindValue { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public StoreLocation StoreLocation { get; set; }
  public StoreName StoreName { get; set; }
  public X509FindType X509FindType { get; set; }
  public void Copy(X509PeerCertificateElement from);

  public sealed class X509RecipientCertificateClientElement
  : ConfigurationElement
  public X509ServiceCertificateAuthenticationElement Authentication { get; }
  public X509DefaultServiceCertificateElement DefaultCertificate { get; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public X509ScopedServiceCertificateElementCollection ScopedCertificates { get; }
  public void Copy(X509RecipientCertificateClientElement from);

  public sealed class X509RecipientCertificateServiceElement
  : ConfigurationElement
  public String FindValue { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public StoreLocation StoreLocation { get; set; }
  public StoreName StoreName { get; set; }
  public X509FindType X509FindType { get; set; }
  public void Copy(X509RecipientCertificateServiceElement from);

  public sealed class X509ScopedServiceCertificateElement
  : ConfigurationElement
  public String FindValue { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public StoreLocation StoreLocation { get; set; }
  public StoreName StoreName { get; set; }
  public Uri TargetUri { get; set; }
  public X509FindType X509FindType { get; set; }
  public void Copy(X509ScopedServiceCertificateElement from);

  public sealed class X509ScopedServiceCertificateElementCollection
  : ServiceModelConfigurationElementCollection`1<X509ScopedServiceCertificateElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);

  public sealed class X509ServiceCertificateAuthenticationElement
  : ConfigurationElement
  public X509CertificateValidationMode CertificateValidationMode { get; set; }
  public String CustomCertificateValidatorType { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public X509RevocationMode RevocationMode { get; set; }
  public StoreLocation TrustedStoreLocation { get; set; }
  public void Copy(X509ServiceCertificateAuthenticationElement from);

  public sealed class XmlDictionaryReaderQuotasElement
  : ServiceModelConfigurationElement
  public Int32 MaxArrayLength { get; set; }
  public Int32 MaxBytesPerRead { get; set; }
  public Int32 MaxDepth { get; set; }
  public Int32 MaxNameTableCharCount { get; set; }
  public Int32 MaxStringContentLength { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }

  public sealed class XmlElementElement
  : ConfigurationElement
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public XmlElement XmlElement { get; set; }
  public void Copy(XmlElementElement source);
  protected virtual void DeserializeElement(XmlReader reader, Boolean serializeCollectionKey);
  protected virtual void PostDeserialize();
  protected virtual Boolean SerializeToXmlElement(XmlWriter writer, String elementName);

  public sealed class XmlElementElementCollection
  : ServiceModelConfigurationElementCollection`1<XmlElementElement>, ICollection, IEnumerable
  protected virtual Object GetElementKey(ConfigurationElement element);
  protected virtual Boolean OnDeserializeUnrecognizedElement(String elementName, XmlReader reader);
  protected virtual void Unmerge(ConfigurationElement sourceElement, ConfigurationElement parentElement, ConfigurationSaveMode saveMode);

  public sealed class XPathMessageFilterElement
  : ConfigurationElement
  public XPathMessageFilter Filter { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  protected virtual void DeserializeElement(XmlReader reader, Boolean serializeCollectionKey);
  protected virtual Boolean SerializeToXmlElement(XmlWriter writer, String elementName);

  public sealed class XPathMessageFilterElementCollection
  : ServiceModelConfigurationElementCollection`1<XPathMessageFilterElement>, ICollection, IEnumerable
  public virtual XPathMessageFilterElement Item { get; set; }
  protected virtual ConfigurationPropertyCollection Properties { get; }
  public virtual Boolean ContainsKey(Object key);
  protected virtual Object GetElementKey(ConfigurationElement element);

  public class XPathMessageFilterElementComparer
  : IComparer