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
- ParameterCollection.cs
- MDIClient.cs
- DiagnosticsConfigurationHandler.cs
- ButtonFlatAdapter.cs
- DecimalAnimation.cs
- HMACMD5.cs
- HtmlTernaryTree.cs
- DirectoryRedirect.cs
- XmlSchemaObject.cs
- _MultipleConnectAsync.cs
- DoubleConverter.cs
- Parsers.cs
- ArraySubsetEnumerator.cs
- FileCodeGroup.cs
- ResourceDefaultValueAttribute.cs
- GB18030Encoding.cs
- DynamicPropertyHolder.cs
- RuntimeWrappedException.cs
- ThrowHelper.cs
- ToolStripLabel.cs
- Crc32.cs
- OracleBoolean.cs
- ComplusEndpointConfigContainer.cs
- ParallelTimeline.cs
- DataServiceHost.cs
- Stream.cs
- HashCodeCombiner.cs
- ParameterSubsegment.cs
- Win32Native.cs
- RadioButtonPopupAdapter.cs
- SafeSystemMetrics.cs
- ObjectListCommandCollection.cs
- SocketCache.cs
- ListViewEditEventArgs.cs
- ZipQueryOperator.cs
- MsmqHostedTransportConfiguration.cs
- SaveFileDialog.cs
- TypefaceMetricsCache.cs
- WebPartTransformerCollection.cs
- GroupBox.cs
- SecurityDocument.cs
- KnownAssembliesSet.cs
- ArrangedElement.cs
- securestring.cs
- ProfileParameter.cs
- TypeDescriptionProviderAttribute.cs
- GridErrorDlg.cs
- PipelineDeploymentState.cs
- HtmlElement.cs
- DataGridViewCellFormattingEventArgs.cs
- IteratorFilter.cs
- DetailsViewInsertEventArgs.cs
- FrameworkPropertyMetadata.cs
- Grammar.cs
- PasswordBoxAutomationPeer.cs
- DbParameterCollection.cs
- FunctionParameter.cs
- RegisteredHiddenField.cs
- HybridCollection.cs
- ConnectionStringEditor.cs
- SecurityImpersonationBehavior.cs
- EllipseGeometry.cs
- LineGeometry.cs
- LayoutEditorPart.cs
- TextClipboardData.cs
- HandlerBase.cs
- ConsoleKeyInfo.cs
- ExpandoClass.cs
- XmlNavigatorFilter.cs
- Transform3D.cs
- XmlReaderDelegator.cs
- ResourcePermissionBase.cs
- RemotingAttributes.cs
- SyncOperationState.cs
- SmtpReplyReader.cs
- CheckedListBox.cs
- ButtonColumn.cs
- OdbcTransaction.cs
- TaskFileService.cs
- StringWriter.cs
- Constraint.cs
- MulticastNotSupportedException.cs
- XPathDescendantIterator.cs
- RequestContext.cs
- ProxyWebPartManager.cs
- Cell.cs
- DocumentPageTextView.cs
- SchemaNamespaceManager.cs
- DataSetMappper.cs
- LinkClickEvent.cs
- LicenseProviderAttribute.cs
- DispatcherEventArgs.cs
- SqlUserDefinedAggregateAttribute.cs
- AttachedProperty.cs
- KeyConverter.cs
- Image.cs
- TextBoxBase.cs
- TabRenderer.cs
- Margins.cs
- BasicBrowserDialog.designer.cs