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
- XmlSecureResolver.cs
- TileBrush.cs
- XmlDataProvider.cs
- FontFamily.cs
- OracleBFile.cs
- XsdSchemaFileEditor.cs
- RequestCachePolicy.cs
- MDIWindowDialog.cs
- CodeNamespaceImport.cs
- CommentEmitter.cs
- OutKeywords.cs
- RegexCompiler.cs
- SqlStream.cs
- GridViewColumnHeaderAutomationPeer.cs
- UnmanagedBitmapWrapper.cs
- KeyGestureConverter.cs
- WebBrowser.cs
- TextServicesContext.cs
- WebPartAddingEventArgs.cs
- TableColumn.cs
- FirstMatchCodeGroup.cs
- SqlParameterCollection.cs
- Compiler.cs
- TextRangeEdit.cs
- TextElementCollection.cs
- IFlowDocumentViewer.cs
- XsdValidatingReader.cs
- DependencyObjectProvider.cs
- WindowsIPAddress.cs
- ColorConverter.cs
- LinqDataSourceValidationException.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- Asn1Utilities.cs
- FlowLayout.cs
- HwndSourceParameters.cs
- TreeIterator.cs
- BulletChrome.cs
- ConditionedDesigner.cs
- DBSchemaTable.cs
- CAGDesigner.cs
- SystemUdpStatistics.cs
- Stopwatch.cs
- BaseInfoTable.cs
- EditModeSwitchButton.cs
- WindowsPen.cs
- Vector3DIndependentAnimationStorage.cs
- Nullable.cs
- RuntimeConfig.cs
- FlowchartDesignerCommands.cs
- Match.cs
- PointAnimationUsingPath.cs
- DecoderReplacementFallback.cs
- While.cs
- HttpCacheVary.cs
- TextElement.cs
- ImplicitInputBrush.cs
- XmlNamespaceMappingCollection.cs
- UniqueEventHelper.cs
- BuiltInExpr.cs
- CardSpacePolicyElement.cs
- RawStylusInputCustomDataList.cs
- ObjectCacheHost.cs
- FrameworkReadOnlyPropertyMetadata.cs
- ScriptRegistrationManager.cs
- SignatureDescription.cs
- basecomparevalidator.cs
- OracleParameterCollection.cs
- CaretElement.cs
- Convert.cs
- InstanceDescriptor.cs
- ListBoxItemAutomationPeer.cs
- AssemblyName.cs
- CountdownEvent.cs
- assertwrapper.cs
- parserscommon.cs
- StrokeRenderer.cs
- PrincipalPermissionMode.cs
- TraceListener.cs
- SQLUtility.cs
- EntitySqlQueryCacheEntry.cs
- LinqDataSourceSelectEventArgs.cs
- Byte.cs
- DecoderNLS.cs
- EntityContainerAssociationSet.cs
- sqlnorm.cs
- DynamicValueConverter.cs
- MethodBuilderInstantiation.cs
- ECDsaCng.cs
- FileRecordSequence.cs
- WebBrowsableAttribute.cs
- ObjectParameterCollection.cs
- SemanticAnalyzer.cs
- OdbcStatementHandle.cs
- LocalizationComments.cs
- MissingManifestResourceException.cs
- SafePEFileHandle.cs
- ModelItemExtensions.cs
- ImageField.cs
- shaper.cs
- ConfigurationSchemaErrors.cs