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
- SerialErrors.cs
- QilCloneVisitor.cs
- FamilyTypefaceCollection.cs
- SingleStorage.cs
- ConfigXmlWhitespace.cs
- SQLInt16.cs
- GatewayIPAddressInformationCollection.cs
- PaperSize.cs
- DesignerForm.cs
- SizeChangedInfo.cs
- XmlDeclaration.cs
- ActivationArguments.cs
- QueryServiceConfigHandle.cs
- MatrixTransform.cs
- NotifyIcon.cs
- _NegotiateClient.cs
- NotifyIcon.cs
- DisplayInformation.cs
- PeerNameResolver.cs
- CredentialCache.cs
- LazyTextWriterCreator.cs
- ShutDownListener.cs
- Dynamic.cs
- Monitor.cs
- Registry.cs
- HttpHandlerAction.cs
- UnmanagedHandle.cs
- EllipseGeometry.cs
- DataControlFieldHeaderCell.cs
- ToolboxDataAttribute.cs
- SchemaElement.cs
- ReliableRequestSessionChannel.cs
- AuthorizationRule.cs
- DesignerActionUI.cs
- DetailsViewPageEventArgs.cs
- Pen.cs
- TypeDelegator.cs
- FuncCompletionCallbackWrapper.cs
- ContractBase.cs
- ModelServiceImpl.cs
- WebBrowserEvent.cs
- IncrementalHitTester.cs
- XslNumber.cs
- XmlSchemaSimpleContentExtension.cs
- X509Utils.cs
- JsonDataContract.cs
- SingleObjectCollection.cs
- AutomationAttributeInfo.cs
- StateDesigner.TransitionInfo.cs
- RawStylusActions.cs
- SoapFault.cs
- BufferAllocator.cs
- XmlNodeReader.cs
- JpegBitmapDecoder.cs
- LocationReferenceValue.cs
- NoClickablePointException.cs
- EntitySqlQueryCacheKey.cs
- SocketAddress.cs
- AndMessageFilter.cs
- BindingMAnagerBase.cs
- FileChangesMonitor.cs
- EmbeddedMailObjectsCollection.cs
- DataGridViewComboBoxCell.cs
- PackageRelationshipCollection.cs
- FontNamesConverter.cs
- HttpCachePolicyElement.cs
- GridLengthConverter.cs
- IdentityReference.cs
- BatchServiceHost.cs
- TabControlAutomationPeer.cs
- DesignerOptionService.cs
- ReflectionUtil.cs
- webbrowsersite.cs
- UnhandledExceptionEventArgs.cs
- ProcessThreadCollection.cs
- CompilationUtil.cs
- ThicknessAnimation.cs
- InvariantComparer.cs
- Errors.cs
- PeerPresenceInfo.cs
- OutputCacheSettingsSection.cs
- NotifyInputEventArgs.cs
- FileDialog_Vista_Interop.cs
- PagerStyle.cs
- ReadOnlyActivityGlyph.cs
- MimeObjectFactory.cs
- CompensationTokenData.cs
- UnescapedXmlDiagnosticData.cs
- SmiXetterAccessMap.cs
- ObjectQuery.cs
- ExpressionNode.cs
- InputLangChangeRequestEvent.cs
- TraceShell.cs
- DetailsViewInsertEventArgs.cs
- _SpnDictionary.cs
- QuaternionConverter.cs
- InputScopeNameConverter.cs
- SecurityUtils.cs
- CreateDataSourceDialog.cs
- SQLDoubleStorage.cs