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
- SelectedGridItemChangedEvent.cs
- ParserContext.cs
- RequestQueryProcessor.cs
- StreamAsIStream.cs
- SystemUdpStatistics.cs
- ProtocolImporter.cs
- ToolStripArrowRenderEventArgs.cs
- ButtonBase.cs
- DataServiceProviderWrapper.cs
- __TransparentProxy.cs
- DataGridState.cs
- IdnMapping.cs
- StrokeCollectionConverter.cs
- Dispatcher.cs
- ValidationSummary.cs
- XmlEnumAttribute.cs
- Vector3DAnimationUsingKeyFrames.cs
- AppSettingsReader.cs
- ProjectionPathBuilder.cs
- UInt16.cs
- ReliableSessionBindingElementImporter.cs
- SqlProvider.cs
- ScrollPattern.cs
- DropDownButton.cs
- StructuredTypeEmitter.cs
- NumericPagerField.cs
- QuotaExceededException.cs
- UnitControl.cs
- FontSource.cs
- Typography.cs
- Vector3DAnimation.cs
- ToolStripSplitStackLayout.cs
- DataServiceEntityAttribute.cs
- PeerTransportElement.cs
- ValueConversionAttribute.cs
- DocumentGridPage.cs
- SecurityAttributeGenerationHelper.cs
- JoinGraph.cs
- VectorConverter.cs
- DefaultValidator.cs
- ResponseStream.cs
- ProcessProtocolHandler.cs
- ServiceChannelProxy.cs
- StdValidatorsAndConverters.cs
- FastEncoder.cs
- ClientProtocol.cs
- RTLAwareMessageBox.cs
- DropShadowBitmapEffect.cs
- SystemColors.cs
- Slider.cs
- WorkingDirectoryEditor.cs
- EncryptedKey.cs
- WebScriptServiceHostFactory.cs
- PointLightBase.cs
- Rectangle.cs
- BrowserCapabilitiesFactoryBase.cs
- ListControlConvertEventArgs.cs
- DataKey.cs
- StreamResourceInfo.cs
- UnauthorizedWebPart.cs
- EntityProviderFactory.cs
- OpenTypeLayoutCache.cs
- Misc.cs
- Axis.cs
- SqlAliaser.cs
- DataGridItemCollection.cs
- DragEventArgs.cs
- ImageClickEventArgs.cs
- RelationshipEndCollection.cs
- MenuAdapter.cs
- _SafeNetHandles.cs
- DbMetaDataCollectionNames.cs
- PointCollection.cs
- SourceLocationProvider.cs
- HwndSourceParameters.cs
- AutomationPropertyInfo.cs
- SpeechDetectedEventArgs.cs
- CollectionBase.cs
- HttpProxyTransportBindingElement.cs
- XPathNavigator.cs
- HttpSysSettings.cs
- PeerNameRecordCollection.cs
- WmlPhoneCallAdapter.cs
- IDReferencePropertyAttribute.cs
- DBProviderConfigurationHandler.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- ToolStripItem.cs
- ComplexPropertyEntry.cs
- Schema.cs
- RemotingAttributes.cs
- BinarySerializer.cs
- Number.cs
- XmlSchemaComplexType.cs
- streamingZipPartStream.cs
- IImplicitResourceProvider.cs
- Msec.cs
- ListViewGroupConverter.cs
- Selection.cs
- UiaCoreTypesApi.cs
- SingleSelectRootGridEntry.cs