Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Transactions / WsatTransactionHeader.cs / 1 / WsatTransactionHeader.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Transactions { using System; using System.ServiceModel.Channels; using System.Diagnostics; using System.ServiceModel; using System.Transactions; using System.Xml; using Microsoft.Transactions.Wsat.Messaging; using Microsoft.Transactions.Wsat.Protocol; class WsatTransactionHeader : MessageHeader { string wsatHeaderElement; string wsatNamespace; CoordinationContext context; public WsatTransactionHeader(CoordinationContext context, ProtocolVersion protocolVersion) { this.context = context; CoordinationStrings coordinationStrings = CoordinationStrings.Version(protocolVersion); this.wsatHeaderElement = coordinationStrings.CoordinationContext; this.wsatNamespace = coordinationStrings.Namespace; } public override bool MustUnderstand { get { return true; } } public override string Name { get { return wsatHeaderElement; } } public override string Namespace { get { return wsatNamespace; } } public static CoordinationContext GetCoordinationContext(Message message, ProtocolVersion protocolVersion) { CoordinationStrings coordinationStrings = CoordinationStrings.Version(protocolVersion); string locWsatHeaderElement = coordinationStrings.CoordinationContext; string locWsatNamespace = coordinationStrings.Namespace; int index; try { index = message.Headers.FindHeader(locWsatHeaderElement, locWsatNamespace); } catch (MessageHeaderException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); return null; } if (index < 0) return null; CoordinationContext context; XmlDictionaryReader reader = message.Headers.GetReaderAtHeader(index); using (reader) { context = GetCoordinationContext(reader, protocolVersion); } MessageHeaderInfo header = message.Headers[index]; if (!message.Headers.UnderstoodHeaders.Contains(header)) { message.Headers.UnderstoodHeaders.Add(header); } return context; } protected override void OnWriteHeaderContents(XmlDictionaryWriter writer, MessageVersion messageVersion) { this.context.WriteContent(writer); } public static CoordinationContext GetCoordinationContext(XmlDictionaryReader reader, ProtocolVersion protocolVersion) { CoordinationXmlDictionaryStrings coordinationXmlDictionaryStrings = CoordinationXmlDictionaryStrings.Version(protocolVersion); try { return CoordinationContext.ReadFrom(reader, coordinationXmlDictionaryStrings.CoordinationContext, coordinationXmlDictionaryStrings.Namespace, protocolVersion); } catch (InvalidCoordinationContextException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Error); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new TransactionException(SR.GetString(SR.WsatHeaderCorrupt), e)); } } public static void WriteElement(XmlDictionaryWriter writer, CoordinationContext context, ProtocolVersion protocolVersion) { CoordinationXmlDictionaryStrings coordinationXmlDictionaryStrings = CoordinationXmlDictionaryStrings.Version(protocolVersion); context.WriteTo(writer, coordinationXmlDictionaryStrings.CoordinationContext, coordinationXmlDictionaryStrings.Namespace); } public static bool IsStartElement(XmlDictionaryReader reader, ProtocolVersion protocolVersion) { CoordinationXmlDictionaryStrings coordinationXmlDictionaryStrings = CoordinationXmlDictionaryStrings.Version(protocolVersion); return reader.IsStartElement(coordinationXmlDictionaryStrings.CoordinationContext, coordinationXmlDictionaryStrings.Namespace); } } } // 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
- ResourceReferenceExpression.cs
- ManagementOptions.cs
- FullTextBreakpoint.cs
- OleServicesContext.cs
- AssignDesigner.xaml.cs
- WebPartPersonalization.cs
- XmlDataImplementation.cs
- ProfileEventArgs.cs
- SettingsBindableAttribute.cs
- XmlUtil.cs
- QualifierSet.cs
- MultiSelector.cs
- ResourceAssociationType.cs
- AspNetSynchronizationContext.cs
- WebPartAuthorizationEventArgs.cs
- ByteConverter.cs
- WebConfigurationManager.cs
- ConnectionPoint.cs
- TextDecorationCollection.cs
- MsmqIntegrationInputChannel.cs
- TraceData.cs
- SingleConverter.cs
- BitmapMetadataBlob.cs
- Constraint.cs
- PublishLicense.cs
- WebServiceResponse.cs
- InterleavedZipPartStream.cs
- ImageCodecInfo.cs
- AnonymousIdentificationModule.cs
- recordstatefactory.cs
- BlockCollection.cs
- WebServiceClientProxyGenerator.cs
- HierarchicalDataBoundControl.cs
- SpellerHighlightLayer.cs
- ViewgenContext.cs
- IncrementalReadDecoders.cs
- EventPropertyMap.cs
- ConfigXmlAttribute.cs
- Encoding.cs
- DbConnectionFactory.cs
- VirtualDirectoryMappingCollection.cs
- PropertyEntry.cs
- StringWriter.cs
- Set.cs
- TabControl.cs
- TimeSpanSecondsConverter.cs
- Pkcs9Attribute.cs
- SqlDataSourceCache.cs
- StringFreezingAttribute.cs
- Quad.cs
- ChannelPool.cs
- DataMemberAttribute.cs
- ProxyGenerator.cs
- IEnumerable.cs
- WebPartVerbsEventArgs.cs
- CreateUserWizard.cs
- CommandDevice.cs
- DataGridViewRowHeaderCell.cs
- TransformerConfigurationWizardBase.cs
- TemplateControlCodeDomTreeGenerator.cs
- uribuilder.cs
- SqlRetyper.cs
- Int16Converter.cs
- WaveHeader.cs
- HttpDebugHandler.cs
- ThumbAutomationPeer.cs
- DynamicField.cs
- precedingsibling.cs
- ZipIOFileItemStream.cs
- AccessorTable.cs
- PolyLineSegmentFigureLogic.cs
- RegisteredDisposeScript.cs
- CodeTypeConstructor.cs
- TrimSurroundingWhitespaceAttribute.cs
- XamlTypeWithExplicitNamespace.cs
- SerializerWriterEventHandlers.cs
- CompositeDataBoundControl.cs
- ThreadStaticAttribute.cs
- WsatServiceAddress.cs
- ProfileManager.cs
- DrawingServices.cs
- PartManifestEntry.cs
- CompositeCollection.cs
- DecimalConverter.cs
- MethodCallExpression.cs
- TemplatedMailWebEventProvider.cs
- JsonEncodingStreamWrapper.cs
- ReadOnlyMetadataCollection.cs
- __Filters.cs
- StylusPointPropertyInfoDefaults.cs
- ObjectComplexPropertyMapping.cs
- assertwrapper.cs
- SubstitutionDesigner.cs
- DbConnectionPoolOptions.cs
- MediaSystem.cs
- RangeValueProviderWrapper.cs
- BooleanToVisibilityConverter.cs
- ConfigXmlAttribute.cs
- SecurityElement.cs
- ObjectSecurityT.cs