Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / TransportOutputChannel.cs / 1 / TransportOutputChannel.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Collections.Generic; using System.ServiceModel; using System.Diagnostics; using System.Xml; abstract class TransportOutputChannel : OutputChannel { bool anyHeadersToAdd; bool manualAddressing; MessageVersion messageVersion; EndpointAddress to; Uri via; ToHeader toHeader; protected TransportOutputChannel(ChannelManagerBase channelManager, EndpointAddress to, Uri via, bool manualAddressing, MessageVersion messageVersion) : base(channelManager) { this.manualAddressing = manualAddressing; this.messageVersion = messageVersion; this.to = to; this.via = via; if (!manualAddressing && to != null) { Uri toUri; if (to.IsAnonymous) { toUri = this.messageVersion.Addressing.AnonymousUri; } else if (to.IsNone) { toUri = this.messageVersion.Addressing.NoneUri; } else { toUri = to.Uri; } XmlDictionaryString dictionaryTo = new ToDictionary(toUri.AbsoluteUri).To; this.toHeader = ToHeader.Create(toUri, dictionaryTo, messageVersion.Addressing); this.anyHeadersToAdd = to.Headers.Count > 0; } } protected bool ManualAddressing { get { return this.manualAddressing; } } public MessageVersion MessageVersion { get { return this.messageVersion; } } public override EndpointAddress RemoteAddress { get { return this.to; } } public override Uri Via { get { return this.via; } } protected override void AddHeadersTo(Message message) { base.AddHeadersTo(message); if (toHeader != null) { // we don't use to.ApplyTo(message) since it's faster to cache and // use the actualheader then to call message.Headers.To = Uri... message.Headers.SetToHeader(toHeader); if (anyHeadersToAdd) { to.Headers.AddHeadersTo(message); } } } class ToDictionary : IXmlDictionary { XmlDictionaryString to; public ToDictionary(string to) { this.to = new XmlDictionaryString(this, to, 0); } public XmlDictionaryString To { get { return to; } } public bool TryLookup(string value, out XmlDictionaryString result) { if (value == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value"); if (value == to.Value) { result = to; return true; } result = null; return false; } public bool TryLookup(int key, out XmlDictionaryString result) { if (key == 0) { result = to; return true; } result = null; return false; } public bool TryLookup(XmlDictionaryString value, out XmlDictionaryString result) { if (value == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value"); if (value == to) { result = to; return true; } result = null; return false; } } } } // 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
- IndentedWriter.cs
- EnumType.cs
- ConfigXmlCDataSection.cs
- TCPListener.cs
- CodeArrayCreateExpression.cs
- WebPartMinimizeVerb.cs
- RuleEngine.cs
- GcHandle.cs
- IfAction.cs
- TextOptions.cs
- TypeBinaryExpression.cs
- errorpatternmatcher.cs
- NetworkInterface.cs
- XmlDocument.cs
- WeakReadOnlyCollection.cs
- StreamHelper.cs
- DataGridViewMethods.cs
- MobileContainerDesigner.cs
- WmfPlaceableFileHeader.cs
- ColumnMap.cs
- DbParameterHelper.cs
- LocalizationComments.cs
- _ConnectOverlappedAsyncResult.cs
- FixedSOMPage.cs
- XmlSchemaProviderAttribute.cs
- Duration.cs
- MediaCommands.cs
- KeyPressEvent.cs
- SqlDataSourceEnumerator.cs
- XamlClipboardData.cs
- COM2ExtendedBrowsingHandler.cs
- CheckBox.cs
- WebMessageEncodingElement.cs
- BinaryConverter.cs
- AuthorizationRule.cs
- CodeBinaryOperatorExpression.cs
- AppSecurityManager.cs
- LinqDataSourceStatusEventArgs.cs
- DynamicScriptObject.cs
- PixelFormats.cs
- Privilege.cs
- VersionUtil.cs
- CultureMapper.cs
- FormClosedEvent.cs
- ServiceNameCollection.cs
- XmlStreamStore.cs
- DataErrorValidationRule.cs
- SortedDictionary.cs
- CancellationToken.cs
- SymLanguageType.cs
- RuntimeTransactionHandle.cs
- PropertyKey.cs
- MimeMapping.cs
- ConstraintConverter.cs
- ToolbarAUtomationPeer.cs
- UrlAuthorizationModule.cs
- CatalogPartCollection.cs
- IriParsingElement.cs
- XsdDateTime.cs
- ImageList.cs
- TagPrefixCollection.cs
- ModuleConfigurationInfo.cs
- LocalizabilityAttribute.cs
- ListItemConverter.cs
- BrowsableAttribute.cs
- SchemeSettingElementCollection.cs
- DataGridTableCollection.cs
- CreationContext.cs
- DetailsViewUpdatedEventArgs.cs
- CodeNamespace.cs
- DataServiceClientException.cs
- DataList.cs
- XmlArrayItemAttributes.cs
- PropertyOverridesTypeEditor.cs
- VerificationException.cs
- ToolStripItemImageRenderEventArgs.cs
- SelectQueryOperator.cs
- ThrowHelper.cs
- CallSiteBinder.cs
- CollectionsUtil.cs
- XPathNavigatorReader.cs
- WeakReadOnlyCollection.cs
- InkPresenterAutomationPeer.cs
- RemoveStoryboard.cs
- StorageEntitySetMapping.cs
- ComNativeDescriptor.cs
- WorkflowServiceHostFactory.cs
- DetailsViewPagerRow.cs
- WebPartPersonalization.cs
- ListItemCollection.cs
- Publisher.cs
- RSAPKCS1SignatureFormatter.cs
- AnnotationAdorner.cs
- Bidi.cs
- AdornerHitTestResult.cs
- QueryableDataSourceView.cs
- ArgIterator.cs
- IndicFontClient.cs
- DataColumnChangeEvent.cs
- ProofTokenCryptoHandle.cs