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
- SqlDataSourceCommandEventArgs.cs
- MetadataItemEmitter.cs
- DragDrop.cs
- SelectionRange.cs
- ContentIterators.cs
- WebPartExportVerb.cs
- List.cs
- ToolStripItemRenderEventArgs.cs
- DataSourceExpression.cs
- RequestCacheManager.cs
- CellQuery.cs
- ReferenceEqualityComparer.cs
- TableRowGroup.cs
- ProxyHelper.cs
- webproxy.cs
- EmbossBitmapEffect.cs
- TextContainerChangeEventArgs.cs
- MULTI_QI.cs
- DetailsViewDeletedEventArgs.cs
- CrossContextChannel.cs
- IndexingContentUnit.cs
- StreamWithDictionary.cs
- WebPartZone.cs
- Viewport2DVisual3D.cs
- ADRoleFactory.cs
- PointKeyFrameCollection.cs
- SelectedGridItemChangedEvent.cs
- KeyedByTypeCollection.cs
- HttpNamespaceReservationInstallComponent.cs
- ListViewCommandEventArgs.cs
- WebPartEventArgs.cs
- Binding.cs
- securitycriticaldataClass.cs
- Int64Converter.cs
- TabItemAutomationPeer.cs
- XmlSchemaNotation.cs
- ParameterCollection.cs
- RepeaterItemCollection.cs
- WebPartDescription.cs
- AmbientLight.cs
- ConfigurationElementCollection.cs
- TraceSection.cs
- PagedDataSource.cs
- InfoCardListRequest.cs
- FixedDocumentSequencePaginator.cs
- ExpressionSelection.cs
- DecimalConstantAttribute.cs
- HtmlTable.cs
- SqlConnectionManager.cs
- PassportAuthenticationModule.cs
- ModelServiceImpl.cs
- CorrelationManager.cs
- MimeMapping.cs
- CursorInteropHelper.cs
- KeyboardEventArgs.cs
- BitmapDownload.cs
- Transaction.cs
- Point3DCollectionValueSerializer.cs
- Hashtable.cs
- SRef.cs
- ToolboxItemCollection.cs
- CustomAttributeSerializer.cs
- ExtenderProvidedPropertyAttribute.cs
- XmlHierarchyData.cs
- ThicknessConverter.cs
- GeometryValueSerializer.cs
- BinHexDecoder.cs
- FixedSOMPageElement.cs
- EditorResources.cs
- GeometryModel3D.cs
- X509InitiatorCertificateServiceElement.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- WrappedReader.cs
- DeploymentSectionCache.cs
- DrawingAttributeSerializer.cs
- PermissionSetTriple.cs
- DocumentApplicationJournalEntry.cs
- HideDisabledControlAdapter.cs
- NonParentingControl.cs
- SimpleWorkerRequest.cs
- GlyphElement.cs
- RtfNavigator.cs
- WindowsRichEdit.cs
- MenuItemStyleCollectionEditor.cs
- OletxEnlistment.cs
- DoubleAnimationBase.cs
- XmlFileEditor.cs
- ProfileSettings.cs
- LocalTransaction.cs
- BamlBinaryReader.cs
- Section.cs
- ExtentKey.cs
- BigInt.cs
- AlphabetConverter.cs
- NativeWrapper.cs
- nulltextcontainer.cs
- FrameworkElementFactory.cs
- MailSettingsSection.cs
- ButtonFieldBase.cs
- LinearGradientBrush.cs