Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / CustomBinding.cs / 1 / CustomBinding.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Channels
{
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Configuration;
using System.Globalization;
using System.ServiceModel.Configuration;
using System.Net.Security;
using System.ServiceModel.Security;
public class CustomBinding : Binding
{
BindingElementCollection bindingElements = new BindingElementCollection();
public CustomBinding()
: base()
{
}
public CustomBinding(string configurationName)
{
ApplyConfiguration(configurationName);
}
public CustomBinding(params BindingElement[] bindingElementsInTopDownChannelStackOrder)
: base()
{
if (bindingElementsInTopDownChannelStackOrder == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElements");
}
foreach (BindingElement element in bindingElementsInTopDownChannelStackOrder)
{
this.bindingElements.Add(element);
}
}
public CustomBinding(string name, string ns, params BindingElement[] bindingElementsInTopDownChannelStackOrder)
: base(name, ns)
{
if (bindingElementsInTopDownChannelStackOrder == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElements");
}
foreach (BindingElement element in bindingElementsInTopDownChannelStackOrder)
{
this.bindingElements.Add(element);
}
}
public CustomBinding(IEnumerable bindingElementsInTopDownChannelStackOrder)
{
if (bindingElementsInTopDownChannelStackOrder == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElements");
}
foreach (BindingElement element in bindingElementsInTopDownChannelStackOrder)
{
this.bindingElements.Add(element);
}
}
internal CustomBinding(BindingElementCollection bindingElements)
: base()
{
if (bindingElements == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElements");
}
for (int i = 0; i < bindingElements.Count; i++)
{
this.bindingElements.Add(bindingElements[i]);
}
}
public CustomBinding(Binding binding)
: this(binding, SafeCreateBindingElements(binding))
{
}
static BindingElementCollection SafeCreateBindingElements(Binding binding)
{
if (binding == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("binding");
}
return binding.CreateBindingElements();
}
internal CustomBinding(Binding binding, BindingElementCollection elements)
{
if (binding == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("binding");
}
if (elements == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("elements");
}
this.Name = binding.Name;
this.Namespace = binding.Namespace;
this.CloseTimeout = binding.CloseTimeout;
this.OpenTimeout = binding.OpenTimeout;
this.ReceiveTimeout = binding.ReceiveTimeout;
this.SendTimeout = binding.SendTimeout;
for (int i = 0; i < elements.Count; i++)
{
bindingElements.Add(elements[i]);
}
}
public BindingElementCollection Elements
{
get
{
return bindingElements;
}
}
public override BindingElementCollection CreateBindingElements()
{
return this.bindingElements.Clone();
}
void ApplyConfiguration(string configurationName)
{
CustomBindingCollectionElement section = CustomBindingCollectionElement.GetBindingCollectionElement();
CustomBindingElement element = section.Bindings[configurationName];
if (element == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(
SR.GetString(SR.ConfigInvalidBindingConfigurationName,
configurationName,
ConfigurationStrings.CustomBindingCollectionElementName)));
}
else
{
element.ApplyConfiguration(this);
}
}
public override string Scheme
{
get
{
TransportBindingElement transport = bindingElements.Find();
if (transport == null)
{
return String.Empty;
}
return transport.Scheme;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ItemsPanelTemplate.cs
- HttpProfileGroupBase.cs
- Rule.cs
- DataServiceContext.cs
- CellTreeNode.cs
- ButtonBaseAdapter.cs
- ListSurrogate.cs
- MatrixAnimationUsingPath.cs
- DetailsViewDeletedEventArgs.cs
- ToggleProviderWrapper.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- CharacterMetrics.cs
- CustomAttributeBuilder.cs
- ScaleTransform3D.cs
- RegistrationContext.cs
- GraphicsPath.cs
- ToolStripPanelDesigner.cs
- ExpressionBuilderCollection.cs
- PeerApplicationLaunchInfo.cs
- SafeRightsManagementHandle.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- NumberAction.cs
- HttpSocketManager.cs
- ControlAdapter.cs
- XmlSchemaSimpleTypeRestriction.cs
- SelectionProviderWrapper.cs
- HttpResponse.cs
- ObjectTokenCategory.cs
- CryptoKeySecurity.cs
- SecurityContext.cs
- HttpConfigurationSystem.cs
- base64Transforms.cs
- ThreadStartException.cs
- XmlSchemaObjectTable.cs
- NavigationProgressEventArgs.cs
- TextFormatterContext.cs
- ClickablePoint.cs
- ThreadStartException.cs
- BuildResultCache.cs
- UnmanagedMemoryStream.cs
- TextParaLineResult.cs
- StrongNameUtility.cs
- XmlSerializationGeneratedCode.cs
- XmlNodeComparer.cs
- FormatterConverter.cs
- DesignerActionVerbList.cs
- ConfigurationValue.cs
- PeerObject.cs
- MaskedTextBoxDesigner.cs
- SafeArrayTypeMismatchException.cs
- UserControl.cs
- BindingContext.cs
- ZipIOLocalFileDataDescriptor.cs
- XmlEnumAttribute.cs
- xamlnodes.cs
- SpecialFolderEnumConverter.cs
- ADMembershipProvider.cs
- XmlnsCompatibleWithAttribute.cs
- DesignerWebPartChrome.cs
- XmlResolver.cs
- WebConfigurationHost.cs
- baseaxisquery.cs
- LocalizabilityAttribute.cs
- PatternMatcher.cs
- URLString.cs
- GridItem.cs
- connectionpool.cs
- UnsafeNativeMethodsCLR.cs
- MouseEventArgs.cs
- WSTrust.cs
- Util.cs
- MemberRestriction.cs
- TextSyndicationContentKindHelper.cs
- SmiEventSink_Default.cs
- RightNameExpirationInfoPair.cs
- QilBinary.cs
- FileFormatException.cs
- ProviderCollection.cs
- MemberExpressionHelper.cs
- DoubleAnimationBase.cs
- FixUpCollection.cs
- AuthorizationRuleCollection.cs
- VirtualStackFrame.cs
- SettingsContext.cs
- Config.cs
- XPathChildIterator.cs
- RichTextBoxConstants.cs
- Pair.cs
- CaseInsensitiveHashCodeProvider.cs
- PointConverter.cs
- VisualStyleElement.cs
- XPathArrayIterator.cs
- VisualTarget.cs
- ColumnCollection.cs
- DocumentDesigner.cs
- QualifiedCellIdBoolean.cs
- XNodeNavigator.cs
- TogglePattern.cs
- VarRefManager.cs
- ProtocolElement.cs