Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Description / MetadataExchangeBindings.cs / 1 / MetadataExchangeBindings.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Description { using System.Globalization; using System.ServiceModel.Channels; using System.ServiceModel; using System.Collections.Generic; public static class MetadataExchangeBindings { static Binding httpBinding; static Binding httpGetBinding; static Binding httpsBinding; static Binding httpsGetBinding; static Binding tcpBinding; static Binding pipeBinding; internal static Binding Http { get { // don't need to lock because no guarantee of instance identity if (httpBinding == null) { httpBinding = CreateHttpBinding(); } return httpBinding; } } internal static Binding HttpGet { get { // don't need to lock because no guarantee of instance identity if (httpGetBinding == null) { httpGetBinding = CreateHttpGetBinding(); } return httpGetBinding; } } internal static Binding Https { get { // don't need to lock because no guarantee of instance identity if (httpsBinding == null) { httpsBinding = CreateHttpsBinding(); } return httpsBinding; } } internal static Binding HttpsGet { get { // don't need to lock because no guarantee of instance identity if (httpsGetBinding == null) { httpsGetBinding = CreateHttpsGetBinding(); } return httpsGetBinding; } } internal static Binding Tcp { get { // don't need to lock because no guarantee of instance identity if (tcpBinding == null) { tcpBinding = CreateTcpBinding(); } return tcpBinding; } } internal static Binding NamedPipe { get { // don't need to lock because no guarantee of instance identity if (pipeBinding == null) { pipeBinding = CreateNamedPipeBinding(); } return pipeBinding; } } public static Binding CreateMexHttpBinding() { return MetadataExchangeBindings.CreateHttpBinding(); } public static Binding CreateMexHttpsBinding() { return MetadataExchangeBindings.CreateHttpsBinding(); } public static Binding CreateMexTcpBinding() { return MetadataExchangeBindings.CreateTcpBinding(); } public static Binding CreateMexNamedPipeBinding() { return MetadataExchangeBindings.CreateNamedPipeBinding(); } internal static Binding GetBindingForScheme(string scheme) { Binding binding = null; TryGetBindingForScheme(scheme, out binding); return binding; } internal static bool TryGetBindingForScheme(string scheme, out Binding binding) { if (String.Compare(scheme, "http", StringComparison.OrdinalIgnoreCase) == 0) { binding = Http; } else if (String.Compare(scheme, "https", StringComparison.OrdinalIgnoreCase) == 0) { binding = Https; } else if (String.Compare(scheme, "net.tcp", StringComparison.OrdinalIgnoreCase) == 0) { binding = Tcp; } else if (String.Compare(scheme, "net.pipe", StringComparison.OrdinalIgnoreCase) == 0) { binding = NamedPipe; } else { binding = null; } return binding != null; } static WSHttpBinding CreateHttpBinding() { WSHttpBinding binding = new WSHttpBinding(SecurityMode.None, /* reliableSessionEnabled */ false); binding.Name = MetadataStrings.MetadataExchangeStrings.HttpBindingName; binding.Namespace = MetadataStrings.MetadataExchangeStrings.BindingNamespace; return binding; } static WSHttpBinding CreateHttpsBinding() { WSHttpBinding binding = new WSHttpBinding( new WSHttpSecurity(SecurityMode.Transport, new HttpTransportSecurity(), new NonDualMessageSecurityOverHttp()), /* reliableSessionEnabled */ false); binding.Name = MetadataStrings.MetadataExchangeStrings.HttpsBindingName; binding.Namespace = MetadataStrings.MetadataExchangeStrings.BindingNamespace; return binding; } static CustomBinding CreateHttpGetBinding() { return CreateGetBinding(new HttpTransportBindingElement()); } static CustomBinding CreateHttpsGetBinding() { return CreateGetBinding(new HttpsTransportBindingElement()); } static CustomBinding CreateGetBinding(HttpTransportBindingElement httpTransport) { TextMessageEncodingBindingElement textEncoding = new TextMessageEncodingBindingElement(); textEncoding.MessageVersion = MessageVersion.None; httpTransport.Method = "GET"; httpTransport.InheritBaseAddressSettings = true; return new CustomBinding(textEncoding, httpTransport); } static CustomBinding CreateTcpBinding() { CustomBinding binding = new CustomBinding(MetadataStrings.MetadataExchangeStrings.TcpBindingName, MetadataStrings.MetadataExchangeStrings.BindingNamespace); TcpTransportBindingElement tcpTransport = new TcpTransportBindingElement(); binding.Elements.Add(tcpTransport); return binding; } static CustomBinding CreateNamedPipeBinding() { CustomBinding binding = new CustomBinding(MetadataStrings.MetadataExchangeStrings.NamedPipeBindingName, MetadataStrings.MetadataExchangeStrings.BindingNamespace); NamedPipeTransportBindingElement pipeTransport = new NamedPipeTransportBindingElement(); binding.Elements.Add(pipeTransport); return binding; } internal static bool IsSchemeSupported(string scheme) { Binding binding; return TryGetBindingForScheme(scheme, out 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
- ExpressionPrefixAttribute.cs
- MobileControlPersister.cs
- CompletionProxy.cs
- OdbcError.cs
- DataGridViewRowStateChangedEventArgs.cs
- StylusPointDescription.cs
- LicenseContext.cs
- ReachDocumentSequenceSerializerAsync.cs
- ConstructorExpr.cs
- CultureSpecificCharacterBufferRange.cs
- XmlFormatExtensionPrefixAttribute.cs
- KeyValuePairs.cs
- ExpressionBuilder.cs
- XmlParser.cs
- WorkflowMarkupSerializer.cs
- ViewStateException.cs
- PersonalizationProviderCollection.cs
- SqlDataSourceCache.cs
- DataSvcMapFile.cs
- UdpReplyToBehavior.cs
- IDQuery.cs
- EventDescriptorCollection.cs
- BinaryObjectReader.cs
- ConvertersCollection.cs
- ImagingCache.cs
- SchemaElementDecl.cs
- ShaderEffect.cs
- ToolStripComboBox.cs
- ConfigurationProperty.cs
- StagingAreaInputItem.cs
- Pkcs9Attribute.cs
- RoleManagerEventArgs.cs
- SelectedDatesCollection.cs
- RNGCryptoServiceProvider.cs
- EventDescriptorCollection.cs
- Activity.cs
- FrameworkObject.cs
- GridViewSelectEventArgs.cs
- XmlConvert.cs
- VirtualDirectoryMappingCollection.cs
- CustomErrorCollection.cs
- OleStrCAMarshaler.cs
- SqlBulkCopyColumnMappingCollection.cs
- SqlGatherConsumedAliases.cs
- AutomationProperty.cs
- AuthenticationService.cs
- DataAdapter.cs
- HttpChannelListener.cs
- PageThemeCodeDomTreeGenerator.cs
- Geometry3D.cs
- RowVisual.cs
- CellParagraph.cs
- UserPreferenceChangingEventArgs.cs
- DynamicQueryableWrapper.cs
- ColorMatrix.cs
- CodeSnippetExpression.cs
- IntellisenseTextBox.cs
- SqlConnection.cs
- DocumentSequenceHighlightLayer.cs
- ComponentCollection.cs
- ObjectDataSourceEventArgs.cs
- EasingFunctionBase.cs
- AdornedElementPlaceholder.cs
- FixUpCollection.cs
- PathFigure.cs
- Renderer.cs
- EmptyReadOnlyDictionaryInternal.cs
- __Filters.cs
- EncodingInfo.cs
- ReceiveSecurityHeaderEntry.cs
- ObjectViewEntityCollectionData.cs
- ToolStripDropDown.cs
- CheckBoxRenderer.cs
- DataGridColumnCollection.cs
- ListenDesigner.cs
- Operator.cs
- RenamedEventArgs.cs
- DataGridViewColumnDesigner.cs
- ResourceWriter.cs
- OracleTransaction.cs
- IgnoreFlushAndCloseStream.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- XmlDataSource.cs
- SecurityTokenValidationException.cs
- NativeMethods.cs
- RawStylusInputCustomDataList.cs
- RegexStringValidatorAttribute.cs
- Base64Decoder.cs
- HostingEnvironmentSection.cs
- EraserBehavior.cs
- XmlWrappingWriter.cs
- Rotation3DAnimation.cs
- WpfPayload.cs
- ErrorFormatter.cs
- HtmlTableRowCollection.cs
- HttpCookieCollection.cs
- DurableInstance.cs
- XmlSerializer.cs
- QilXmlReader.cs
- DispatcherSynchronizationContext.cs