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
- VectorAnimation.cs
- InheritanceContextHelper.cs
- CheckBoxAutomationPeer.cs
- CharacterMetrics.cs
- TextTabProperties.cs
- RequestQueryProcessor.cs
- Accessors.cs
- CompositionDesigner.cs
- StrictAndMessageFilter.cs
- CompositeFontParser.cs
- XmlSyndicationContent.cs
- FixedDocumentSequencePaginator.cs
- ReplacementText.cs
- Scanner.cs
- URI.cs
- WebEncodingValidator.cs
- Rectangle.cs
- ValidationErrorEventArgs.cs
- oledbmetadatacollectionnames.cs
- ResXResourceReader.cs
- DocumentViewerHelper.cs
- FilterElement.cs
- invalidudtexception.cs
- XMLSchema.cs
- Application.cs
- CheckBoxPopupAdapter.cs
- CollectionChangeEventArgs.cs
- HandoffBehavior.cs
- TransactionManager.cs
- DataRecordInfo.cs
- DependencyPropertyChangedEventArgs.cs
- ITreeGenerator.cs
- UIElementHelper.cs
- FieldDescriptor.cs
- Int64Animation.cs
- CombinedGeometry.cs
- FixedSOMImage.cs
- TextTreeExtractElementUndoUnit.cs
- ExpressionPrinter.cs
- ConfigurationErrorsException.cs
- Vars.cs
- TypeSemantics.cs
- Vector.cs
- LinkLabel.cs
- StaticFileHandler.cs
- ErrorFormatter.cs
- StrokeCollectionConverter.cs
- RecognizerStateChangedEventArgs.cs
- StateDesigner.Helpers.cs
- PathParser.cs
- SyndicationLink.cs
- SafeMemoryMappedViewHandle.cs
- SafeLocalAllocation.cs
- RowTypePropertyElement.cs
- BindingEntityInfo.cs
- COAUTHINFO.cs
- BinaryReader.cs
- AttributeCollection.cs
- HttpWriter.cs
- PathGradientBrush.cs
- SqlXmlStorage.cs
- HttpCacheVary.cs
- LinqToSqlWrapper.cs
- GiveFeedbackEvent.cs
- EntityContainerEmitter.cs
- ConfigXmlSignificantWhitespace.cs
- ResourceReferenceExpression.cs
- BitFlagsGenerator.cs
- RegionData.cs
- FormatterServices.cs
- TextWriterEngine.cs
- RsaKeyIdentifierClause.cs
- FormsAuthenticationModule.cs
- StorageAssociationTypeMapping.cs
- TrackingStringDictionary.cs
- ProxyAttribute.cs
- ReflectionTypeLoadException.cs
- SiteMap.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- CodeTypeReferenceCollection.cs
- BigInt.cs
- ReflectPropertyDescriptor.cs
- ControlEvent.cs
- NativeMethods.cs
- SqlParameter.cs
- WebScriptEnablingBehavior.cs
- GridViewUpdatedEventArgs.cs
- ConfigurationFileMap.cs
- RadialGradientBrush.cs
- LookupBindingPropertiesAttribute.cs
- NamespaceInfo.cs
- TemplatedAdorner.cs
- ContextInformation.cs
- XmlDictionaryReaderQuotasElement.cs
- COM2PropertyPageUITypeConverter.cs
- SharedStatics.cs
- AddInServer.cs
- PersonalizationEntry.cs
- ACE.cs
- PrintSystemException.cs