Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / StandardBindingImporter.cs / 1 / StandardBindingImporter.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Channels
{
using System.Xml;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.Xml.Schema;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using WsdlNS=System.Web.Services.Description;
public class StandardBindingImporter : IWsdlImportExtension
{
void IWsdlImportExtension.BeforeImport(WsdlNS.ServiceDescriptionCollection wsdlDocuments, XmlSchemaSet xmlSchemas, ICollection policy) { }
void IWsdlImportExtension.ImportContract(WsdlImporter importer, WsdlContractConversionContext context) { }
void IWsdlImportExtension.ImportEndpoint(WsdlImporter importer, WsdlEndpointConversionContext endpointContext)
{
if (endpointContext == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("endpointContext");
#pragma warning suppress 56506 // [....], endpointContext.Endpoint is never null
if (endpointContext.Endpoint.Binding == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("endpointContext.Binding");
if (endpointContext.Endpoint.Binding is CustomBinding)
{
BindingElementCollection elements = ((CustomBinding)endpointContext.Endpoint.Binding).Elements;
Binding binding;
TransportBindingElement transport = elements.Find();
if (transport is HttpTransportBindingElement)
{
if (WSHttpBindingBase.TryCreate(elements, out binding))
{
SetBinding(endpointContext.Endpoint, binding);
}
else if (WSDualHttpBinding.TryCreate(elements, out binding))
{
SetBinding(endpointContext.Endpoint, binding);
}
else if (BasicHttpBinding.TryCreate(elements, out binding))
{
SetBinding(endpointContext.Endpoint, binding);
}
}
else if (transport is MsmqTransportBindingElement && NetMsmqBinding.TryCreate(elements, out binding))
{
SetBinding(endpointContext.Endpoint, binding);
}
else if (transport is NamedPipeTransportBindingElement && NetNamedPipeBinding.TryCreate(elements, out binding))
{
SetBinding(endpointContext.Endpoint, binding);
}
else if (transport is PeerTransportBindingElement && NetPeerTcpBinding.TryCreate(elements, out binding))
{
SetBinding(endpointContext.Endpoint, binding);
}
else if (transport is TcpTransportBindingElement && NetTcpBinding.TryCreate(elements, out binding))
{
SetBinding(endpointContext.Endpoint, binding);
}
}
}
void SetBinding(ServiceEndpoint endpoint, Binding binding)
{
binding.Name = endpoint.Binding.Name;
binding.Namespace = endpoint.Binding.Namespace;
endpoint.Binding = binding;
}
}
}
// 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
- HttpRequestCacheValidator.cs
- SendActivityDesignerTheme.cs
- GeneralTransform3DTo2D.cs
- DateTimeValueSerializerContext.cs
- EtwProvider.cs
- XmlSchemaAnnotation.cs
- MatrixTransform3D.cs
- EDesignUtil.cs
- EditingMode.cs
- DbgCompiler.cs
- FormatException.cs
- CommonXSendMessage.cs
- X509AsymmetricSecurityKey.cs
- StringTraceRecord.cs
- GeometryGroup.cs
- XmlSerializer.cs
- MenuBase.cs
- XsdDateTime.cs
- BuildManager.cs
- TimeSpanSecondsConverter.cs
- CompareValidator.cs
- AvTraceDetails.cs
- DoubleLink.cs
- FontWeightConverter.cs
- ArgIterator.cs
- SymmetricCryptoHandle.cs
- SmiTypedGetterSetter.cs
- AutomationElementCollection.cs
- XmlSchemaComplexType.cs
- DataGridViewRowPostPaintEventArgs.cs
- OLEDB_Util.cs
- CapabilitiesAssignment.cs
- SemanticAnalyzer.cs
- CodeArgumentReferenceExpression.cs
- DefaultPrintController.cs
- WindowsHyperlink.cs
- SequenceDesigner.xaml.cs
- MergeLocalizationDirectives.cs
- ProfileSection.cs
- Collection.cs
- TypeConverter.cs
- StateMachineExecutionState.cs
- VisualStyleTypesAndProperties.cs
- DateTimeConverter.cs
- HostingEnvironmentException.cs
- Int32AnimationBase.cs
- PtsCache.cs
- XmlSchemaInclude.cs
- StylusCollection.cs
- DesignBindingValueUIHandler.cs
- Context.cs
- DiscardableAttribute.cs
- SHA1CryptoServiceProvider.cs
- MemberDescriptor.cs
- ExpandoClass.cs
- SrgsDocumentParser.cs
- DefaultValueConverter.cs
- PrintPageEvent.cs
- SqlTypesSchemaImporter.cs
- Renderer.cs
- HttpApplication.cs
- SizeAnimationUsingKeyFrames.cs
- DataGridItemEventArgs.cs
- ThreadStartException.cs
- VirtualizedItemPattern.cs
- WCFBuildProvider.cs
- ParseElement.cs
- OutOfMemoryException.cs
- PersonalizablePropertyEntry.cs
- LoginView.cs
- AssemblyName.cs
- EnumerableValidator.cs
- FontInfo.cs
- ToolboxComponentsCreatingEventArgs.cs
- MessageDecoder.cs
- RuntimeCompatibilityAttribute.cs
- RouteValueDictionary.cs
- XmlSchemaAnyAttribute.cs
- XmlChildNodes.cs
- FormsAuthenticationModule.cs
- FixedNode.cs
- OLEDB_Enum.cs
- DebugManager.cs
- WMICapabilities.cs
- EntityCommand.cs
- EastAsianLunisolarCalendar.cs
- ListViewCancelEventArgs.cs
- XmlComplianceUtil.cs
- FormViewModeEventArgs.cs
- wgx_sdk_version.cs
- PanelStyle.cs
- FormsAuthenticationUserCollection.cs
- PropertyToken.cs
- ObjectContext.cs
- DesignSurfaceManager.cs
- DrawListViewSubItemEventArgs.cs
- NotifyCollectionChangedEventArgs.cs
- VarRemapper.cs
- Main.cs
- ObjectViewQueryResultData.cs