Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / MsmqTransportBindingElement.cs / 1 / MsmqTransportBindingElement.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.ServiceModel.Activation; using System.Collections.Generic; using System.Net.Security; using System.Runtime.Serialization; using System.ServiceModel.Security; using System.Xml; public sealed class MsmqTransportBindingElement : MsmqBindingElementBase { int maxPoolSize = MsmqDefaults.MaxPoolSize; bool useActiveDirectory = MsmqDefaults.UseActiveDirectory; QueueTransferProtocol queueTransferProtocol = MsmqDefaults.QueueTransferProtocol; public MsmqTransportBindingElement() { } MsmqTransportBindingElement(MsmqTransportBindingElement elementToBeCloned) : base(elementToBeCloned) { this.useActiveDirectory = elementToBeCloned.useActiveDirectory; this.maxPoolSize = elementToBeCloned.maxPoolSize; this.queueTransferProtocol = elementToBeCloned.queueTransferProtocol; } internal override MsmqUri.IAddressTranslator AddressTranslator { get { switch (this.queueTransferProtocol) { case QueueTransferProtocol.Srmp: return MsmqUri.SrmpAddressTranslator; case QueueTransferProtocol.SrmpSecure: return MsmqUri.SrmpsAddressTranslator; default: return this.useActiveDirectory ? MsmqUri.ActiveDirectoryAddressTranslator : MsmqUri.NetMsmqAddressTranslator; } } } public int MaxPoolSize { get { return this.maxPoolSize; } set { if (value < 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new ArgumentOutOfRangeException("value", value, SR.GetString(SR.MsmqNonNegativeArgumentExpected))); } this.maxPoolSize = value; } } public QueueTransferProtocol QueueTransferProtocol { get { return this.queueTransferProtocol; } set { if (! QueueTransferProtocolHelper.IsDefined(value)) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); this.queueTransferProtocol = value; } } public override string Scheme { get { return "net.msmq"; } } public bool UseActiveDirectory { get { return this.useActiveDirectory; } set { this.useActiveDirectory = value; } } internal override string WsdlTransportUri { get { return TransportPolicyConstants.MsmqTransportUri; } } public override BindingElement Clone() { return new MsmqTransportBindingElement(this); } public override bool CanBuildChannelFactory(BindingContext context) { return (typeof(TChannel) == typeof(IOutputChannel) || typeof(TChannel) == typeof(IOutputSessionChannel)); } public override bool CanBuildChannelListener (BindingContext context) { return (typeof(TChannel) == typeof(IInputChannel) || typeof(TChannel) == typeof(IInputSessionChannel)); } public override IChannelFactory BuildChannelFactory (BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (typeof(TChannel) == typeof(IOutputChannel)) { MsmqChannelFactoryBase factory = new MsmqOutputChannelFactory(this, context); MsmqVerifier.VerifySender (factory); return (IChannelFactory )(object)factory; } else if (typeof(TChannel) == typeof(IOutputSessionChannel)) { MsmqChannelFactoryBase factory = new MsmqOutputSessionChannelFactory(this, context); MsmqVerifier.VerifySender (factory); return (IChannelFactory )(object)factory; } else { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("TChannel", SR.GetString(SR.ChannelTypeNotSupported, typeof(TChannel))); } } public override IChannelListener BuildChannelListener (BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } TransportChannelListener msmqListener; MsmqTransportReceiveParameters receiveParameters = new MsmqTransportReceiveParameters(this, MsmqUri.NetMsmqAddressTranslator); if (typeof(TChannel) == typeof(IInputChannel)) { msmqListener = new MsmqInputChannelListener(this, context, receiveParameters); } else if (typeof(TChannel) == typeof(IInputSessionChannel)) { msmqListener = new MsmqInputSessionChannelListener(this, context, receiveParameters); } else { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("TChannel", SR.GetString(SR.ChannelTypeNotSupported, typeof(TChannel))); } VirtualPathExtension.ApplyHostedContext(msmqListener, context); MsmqVerifier.VerifyReceiver(receiveParameters, msmqListener.Uri); return (IChannelListener )(object)msmqListener; } } } // 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
- StatusBarPanelClickEvent.cs
- WebConfigurationHostFileChange.cs
- HierarchicalDataSourceIDConverter.cs
- TripleDESCryptoServiceProvider.cs
- TimeoutHelper.cs
- ComboBoxRenderer.cs
- FontFamilyConverter.cs
- EventsTab.cs
- ProtectedConfigurationSection.cs
- ProcessModuleDesigner.cs
- FileDialog.cs
- remotingproxy.cs
- webbrowsersite.cs
- precedingquery.cs
- TextCollapsingProperties.cs
- XmlSchemaImporter.cs
- ProcessModuleCollection.cs
- CompositionAdorner.cs
- InputEventArgs.cs
- RuleSettingsCollection.cs
- cache.cs
- HandleInitializationContext.cs
- BindableAttribute.cs
- XmlAttributeAttribute.cs
- PrintDialog.cs
- CharUnicodeInfo.cs
- ValidationEventArgs.cs
- FieldInfo.cs
- LinqTreeNodeEvaluator.cs
- WebBrowserUriTypeConverter.cs
- _ProxyChain.cs
- CharacterBufferReference.cs
- Timer.cs
- X509ChainPolicy.cs
- TextModifierScope.cs
- HyperlinkAutomationPeer.cs
- AnnotationAdorner.cs
- XomlSerializationHelpers.cs
- WebSysDefaultValueAttribute.cs
- StrongNameUtility.cs
- SymLanguageType.cs
- KnownColorTable.cs
- Emitter.cs
- WebMessageEncodingBindingElement.cs
- PrinterSettings.cs
- SeekStoryboard.cs
- SizeF.cs
- CopyAction.cs
- ContextProperty.cs
- DataControlFieldCell.cs
- OdbcEnvironmentHandle.cs
- XXXOnTypeBuilderInstantiation.cs
- ChunkedMemoryStream.cs
- MulticastNotSupportedException.cs
- ExpandableObjectConverter.cs
- IgnorePropertiesAttribute.cs
- HttpProfileBase.cs
- XmlILTrace.cs
- RefExpr.cs
- EDesignUtil.cs
- RuntimeCompatibilityAttribute.cs
- nulltextnavigator.cs
- SqlStream.cs
- SqlNode.cs
- FormsAuthentication.cs
- CodeNamespaceImport.cs
- MultiAsyncResult.cs
- ConfigXmlElement.cs
- UniqueID.cs
- SynchronizationHandlesCodeDomSerializer.cs
- SqlTriggerAttribute.cs
- mda.cs
- PropertyValidationContext.cs
- CacheVirtualItemsEvent.cs
- SqlCacheDependency.cs
- FilteredAttributeCollection.cs
- GAC.cs
- RedistVersionInfo.cs
- HttpModulesSection.cs
- IconBitmapDecoder.cs
- ColumnPropertiesGroup.cs
- InputBuffer.cs
- IntSecurity.cs
- IisTraceWebEventProvider.cs
- Cloud.cs
- CodeObjectCreateExpression.cs
- WinFormsComponentEditor.cs
- ChannelBinding.cs
- HasCopySemanticsAttribute.cs
- IndentedWriter.cs
- HtmlForm.cs
- Array.cs
- PagePropertiesChangingEventArgs.cs
- Utilities.cs
- LineServices.cs
- ContentElement.cs
- CompilerTypeWithParams.cs
- PointCollectionConverter.cs
- StyleModeStack.cs
- IgnoreSectionHandler.cs