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
- AudienceUriMode.cs
- ReturnValue.cs
- SplitterCancelEvent.cs
- FormatException.cs
- EditorBrowsableAttribute.cs
- WCFBuildProvider.cs
- OpenTypeLayoutCache.cs
- VersionedStreamOwner.cs
- ControlFilterExpression.cs
- InstancePersistence.cs
- DecoderBestFitFallback.cs
- XPathParser.cs
- ExtensibleClassFactory.cs
- IsolatedStorageException.cs
- EditorZoneBase.cs
- SystemColorTracker.cs
- RoutedEventArgs.cs
- GroupBox.cs
- BinHexEncoder.cs
- ListSourceHelper.cs
- UserInitiatedNavigationPermission.cs
- FlowchartDesignerCommands.cs
- PropertyTab.cs
- SQLByteStorage.cs
- SByteStorage.cs
- ServicePointManagerElement.cs
- IIS7WorkerRequest.cs
- WindowsTreeView.cs
- ToolStripLocationCancelEventArgs.cs
- PageWrapper.cs
- ConstrainedDataObject.cs
- XmlCompatibilityReader.cs
- ModelTreeManager.cs
- HierarchicalDataBoundControl.cs
- HttpRequest.cs
- CodeValidator.cs
- _NestedSingleAsyncResult.cs
- XDRSchema.cs
- ServerValidateEventArgs.cs
- AssemblyFilter.cs
- WebPartZoneDesigner.cs
- KeyedQueue.cs
- XmlSchemaAny.cs
- QuaternionAnimation.cs
- XamlSerializerUtil.cs
- Stackframe.cs
- RuleSetReference.cs
- BinHexEncoder.cs
- XsltInput.cs
- DataGridRowsPresenter.cs
- SynchronizedPool.cs
- UnsafeNativeMethods.cs
- GlobalProxySelection.cs
- SmiSettersStream.cs
- PrintDialog.cs
- HashFinalRequest.cs
- EditorPartDesigner.cs
- PathSegment.cs
- XmlNodeList.cs
- DataGridLinkButton.cs
- TimeManager.cs
- ListViewInsertedEventArgs.cs
- SocketPermission.cs
- TextLineBreak.cs
- AssemblyCache.cs
- ActiveXContainer.cs
- DataServiceOperationContext.cs
- ScrollBar.cs
- MessageQueueEnumerator.cs
- RootBuilder.cs
- CompiledQuery.cs
- GenericXmlSecurityToken.cs
- COM2FontConverter.cs
- SelectorAutomationPeer.cs
- ChtmlTextWriter.cs
- AuthenticatedStream.cs
- MouseWheelEventArgs.cs
- DataSourceView.cs
- Normalization.cs
- WSSecureConversationFeb2005.cs
- SpellerInterop.cs
- ImageCollectionEditor.cs
- EntityModelBuildProvider.cs
- MapPathBasedVirtualPathProvider.cs
- XmlNamespaceMappingCollection.cs
- HtmlInputSubmit.cs
- SelectionGlyph.cs
- SpoolingTask.cs
- ScriptingAuthenticationServiceSection.cs
- AttributeQuery.cs
- hebrewshape.cs
- RelatedEnd.cs
- EllipseGeometry.cs
- ClipboardProcessor.cs
- HwndHost.cs
- ViewCellSlot.cs
- RoutedEventArgs.cs
- ResetableIterator.cs
- Membership.cs
- GridViewPageEventArgs.cs