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
- CfgRule.cs
- ArraySubsetEnumerator.cs
- AnimationTimeline.cs
- ConfigsHelper.cs
- ProxyManager.cs
- XmlAttributeAttribute.cs
- StylusShape.cs
- WsatExtendedInformation.cs
- thaishape.cs
- NamespaceMapping.cs
- SQLResource.cs
- CheckBox.cs
- Message.cs
- SystemUdpStatistics.cs
- GridViewColumnHeader.cs
- DispatcherSynchronizationContext.cs
- ImageList.cs
- DoubleStorage.cs
- MailAddressCollection.cs
- XmlSchemaElement.cs
- RegexReplacement.cs
- BitmapPalette.cs
- RenderOptions.cs
- DataServiceHostFactory.cs
- DecimalFormatter.cs
- XXXInfos.cs
- UrlMappingsModule.cs
- _UriSyntax.cs
- StringStorage.cs
- ScrollBarRenderer.cs
- InternalBufferOverflowException.cs
- TemplateControlCodeDomTreeGenerator.cs
- SystemSounds.cs
- SqlBulkCopyColumnMapping.cs
- WpfWebRequestHelper.cs
- TdsEnums.cs
- QueryStringParameter.cs
- IODescriptionAttribute.cs
- IList.cs
- BmpBitmapEncoder.cs
- EntityDataSourceSelectedEventArgs.cs
- COM2ExtendedUITypeEditor.cs
- ImagingCache.cs
- AnnotationResourceChangedEventArgs.cs
- GroupQuery.cs
- FrameworkTemplate.cs
- Task.cs
- PreProcessor.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- ConvertersCollection.cs
- PathSegment.cs
- IPEndPoint.cs
- ColumnCollection.cs
- CompatibleComparer.cs
- CAGDesigner.cs
- TextReader.cs
- BindingMemberInfo.cs
- ListView.cs
- ZipIOExtraFieldPaddingElement.cs
- ExceptionUtil.cs
- DataControlFieldCell.cs
- RepeaterItemEventArgs.cs
- DelimitedListTraceListener.cs
- FormCollection.cs
- ClosableStream.cs
- DataGrid.cs
- PEFileReader.cs
- Console.cs
- GCHandleCookieTable.cs
- TypePresenter.xaml.cs
- X509LogoTypeExtension.cs
- unsafenativemethodsother.cs
- TouchesOverProperty.cs
- XmlSchema.cs
- Literal.cs
- CurrencyManager.cs
- TaskSchedulerException.cs
- PageThemeParser.cs
- SecurityHeader.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- SqlCommandBuilder.cs
- CodeIdentifiers.cs
- SQLDateTimeStorage.cs
- UnhandledExceptionEventArgs.cs
- SafeRightsManagementSessionHandle.cs
- AppSecurityManager.cs
- HTMLTagNameToTypeMapper.cs
- EntityCollection.cs
- CryptoHandle.cs
- KeyedCollection.cs
- ChildDocumentBlock.cs
- EntityDesignerUtils.cs
- HtmlTable.cs
- HandleCollector.cs
- SrgsGrammarCompiler.cs
- CodeCompiler.cs
- RuleSetDialog.Designer.cs
- GcHandle.cs
- EnvironmentPermission.cs
- DependencyPropertyKey.cs