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
- SessionEndingEventArgs.cs
- RegionInfo.cs
- ExpressionVisitor.cs
- MessageBox.cs
- ChtmlPageAdapter.cs
- ToolStripHighContrastRenderer.cs
- GetLedgerRequest.cs
- User.cs
- SizeAnimationBase.cs
- Stack.cs
- WebPartConnection.cs
- EventBookmark.cs
- XmlObjectSerializer.cs
- SqlConnectionHelper.cs
- RuntimeConfigLKG.cs
- OutOfProcStateClientManager.cs
- odbcmetadatafactory.cs
- WindowsGrip.cs
- HttpWriter.cs
- sqlstateclientmanager.cs
- DirtyTextRange.cs
- DispatcherBuilder.cs
- SecurityPolicySection.cs
- LinkedResourceCollection.cs
- WebPartHelpVerb.cs
- SecurityException.cs
- XpsSerializationException.cs
- GridView.cs
- ListSortDescriptionCollection.cs
- ArcSegment.cs
- Int32Rect.cs
- LinqDataSourceDisposeEventArgs.cs
- FontNamesConverter.cs
- CompletionProxy.cs
- TypeUtils.cs
- BinaryNode.cs
- ThrowHelper.cs
- TableLayoutPanelCellPosition.cs
- ExtendedProtectionPolicy.cs
- Transform3D.cs
- WindowsContainer.cs
- DataGridViewCellFormattingEventArgs.cs
- WebPartDeleteVerb.cs
- Comparer.cs
- StrokeSerializer.cs
- FamilyTypefaceCollection.cs
- TypeInformation.cs
- SoapAttributeOverrides.cs
- ExpressionReplacer.cs
- SimpleBitVector32.cs
- SoapExtensionReflector.cs
- TraceListeners.cs
- CodeThrowExceptionStatement.cs
- MultipartIdentifier.cs
- OleDbMetaDataFactory.cs
- ElementMarkupObject.cs
- SurrogateSelector.cs
- InternalTypeHelper.cs
- PeerContact.cs
- ContextStack.cs
- CellTreeNodeVisitors.cs
- ObjectStateManagerMetadata.cs
- CodeLabeledStatement.cs
- ApplicationDirectoryMembershipCondition.cs
- ResourceDictionary.cs
- CounterSample.cs
- BasicExpandProvider.cs
- HostedHttpContext.cs
- Context.cs
- AffineTransform3D.cs
- Semaphore.cs
- basecomparevalidator.cs
- SpecularMaterial.cs
- StylusButton.cs
- PriorityBinding.cs
- ControlFilterExpression.cs
- FileChangesMonitor.cs
- TraceFilter.cs
- safex509handles.cs
- ValueProviderWrapper.cs
- CfgSemanticTag.cs
- AttachedAnnotationChangedEventArgs.cs
- IntSecurity.cs
- Scripts.cs
- TextBoxLine.cs
- SafeFileMapViewHandle.cs
- TreeView.cs
- MouseEvent.cs
- CodeCommentStatementCollection.cs
- RichTextBoxAutomationPeer.cs
- Stack.cs
- StylusCollection.cs
- SAPIEngineTypes.cs
- RuntimeIdentifierPropertyAttribute.cs
- MarshalDirectiveException.cs
- ProxyWebPartManager.cs
- NativeRecognizer.cs
- TextSpan.cs
- HotCommands.cs
- Clock.cs