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(IEnumerablebindingElementsInTopDownChannelStackOrder) { 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
- PipelineDeploymentState.cs
- FormatConvertedBitmap.cs
- DependentList.cs
- GridViewColumnCollection.cs
- DrawToolTipEventArgs.cs
- ChangesetResponse.cs
- MostlySingletonList.cs
- DCSafeHandle.cs
- DataReaderContainer.cs
- _ListenerResponseStream.cs
- StorageFunctionMapping.cs
- LabelAutomationPeer.cs
- EncryptedKeyIdentifierClause.cs
- ReaderContextStackData.cs
- TrackingRecord.cs
- TargetConverter.cs
- Version.cs
- TimerElapsedEvenArgs.cs
- PagePropertiesChangingEventArgs.cs
- XmlSchemaDatatype.cs
- SchemaInfo.cs
- TransactionManager.cs
- RawKeyboardInputReport.cs
- SqlCharStream.cs
- OAVariantLib.cs
- cryptoapiTransform.cs
- List.cs
- Site.cs
- DebugView.cs
- DataKeyArray.cs
- RtfToken.cs
- XmlTextReader.cs
- ZoneLinkButton.cs
- ExceptionWrapper.cs
- ClassDataContract.cs
- PtsContext.cs
- TableRowCollection.cs
- HtmlDocument.cs
- DictionaryBase.cs
- CodeAssignStatement.cs
- Component.cs
- HttpConfigurationSystem.cs
- DataControlLinkButton.cs
- RemotingHelper.cs
- ColumnMapVisitor.cs
- CryptoStream.cs
- SelectionHighlightInfo.cs
- SiteIdentityPermission.cs
- ProgressBarBrushConverter.cs
- ExpressionBuilder.cs
- SID.cs
- DrawingVisualDrawingContext.cs
- FakeModelPropertyImpl.cs
- MdiWindowListItemConverter.cs
- SystemInformation.cs
- ISCIIEncoding.cs
- QueryParameter.cs
- AttributeUsageAttribute.cs
- MultiSelectRootGridEntry.cs
- FlowDecision.cs
- FtpCachePolicyElement.cs
- WebServiceEnumData.cs
- IsolationInterop.cs
- DataTableTypeConverter.cs
- WebReferenceCollection.cs
- ReadOnlyDataSourceView.cs
- basevalidator.cs
- BooleanProjectedSlot.cs
- Column.cs
- SortedList.cs
- WindowsAuthenticationModule.cs
- DependencyPropertyKind.cs
- ExclusiveHandleList.cs
- XamlSerializerUtil.cs
- SqlRecordBuffer.cs
- StaticSiteMapProvider.cs
- ResourceManagerWrapper.cs
- FieldNameLookup.cs
- ControlIdConverter.cs
- MaterialGroup.cs
- XmlHierarchicalEnumerable.cs
- Inflater.cs
- StrokeNodeData.cs
- ProgressChangedEventArgs.cs
- HtmlShim.cs
- ClientViaElement.cs
- BindingExpressionUncommonField.cs
- HttpCacheParams.cs
- ToolStripProgressBar.cs
- EdmComplexPropertyAttribute.cs
- TextEmbeddedObject.cs
- OptimisticConcurrencyException.cs
- GroupLabel.cs
- TextCompositionEventArgs.cs
- PasswordRecovery.cs
- AssemblyAttributes.cs
- _DisconnectOverlappedAsyncResult.cs
- StringComparer.cs
- XmlChildNodes.cs
- PaginationProgressEventArgs.cs