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
- DynamicActivityTypeDescriptor.cs
- Deserializer.cs
- ACL.cs
- EventArgs.cs
- SafeSecurityHandles.cs
- graph.cs
- WebPartMinimizeVerb.cs
- MonitorWrapper.cs
- DataControlHelper.cs
- StyleCollection.cs
- SystemIPGlobalStatistics.cs
- ContentPresenter.cs
- precedingquery.cs
- StatusCommandUI.cs
- WebBrowsableAttribute.cs
- ProxySimple.cs
- MemoryMappedView.cs
- SqlDelegatedTransaction.cs
- HMACSHA1.cs
- MoveSizeWinEventHandler.cs
- ChameleonKey.cs
- PlainXmlSerializer.cs
- SerializationHelper.cs
- MasterPageParser.cs
- RangeValuePatternIdentifiers.cs
- PropertyNames.cs
- OracleTransaction.cs
- ChannelOptions.cs
- CellIdBoolean.cs
- Int32EqualityComparer.cs
- DesignerView.cs
- HttpProfileBase.cs
- SetterBaseCollection.cs
- VisualCollection.cs
- RC2CryptoServiceProvider.cs
- UnsafeNativeMethods.cs
- DataGridCell.cs
- Track.cs
- CharacterString.cs
- ToolBarDesigner.cs
- TypeSystem.cs
- UdpTransportSettings.cs
- SqlDuplicator.cs
- OperatingSystemVersionCheck.cs
- ProviderSettingsCollection.cs
- TdsParser.cs
- ButtonColumn.cs
- TreeNodeSelectionProcessor.cs
- Selector.cs
- SamlSecurityToken.cs
- TemplateColumn.cs
- AppDomainManager.cs
- TrackingStringDictionary.cs
- EntityDataSourceColumn.cs
- XPathNodeIterator.cs
- EntityDataSourceDataSelectionPanel.designer.cs
- GeneralTransform3DCollection.cs
- XmlSchemaExporter.cs
- SqlFunctionAttribute.cs
- ConfigXmlDocument.cs
- BindingFormattingDialog.cs
- XmlExtensionFunction.cs
- LicFileLicenseProvider.cs
- OneOfElement.cs
- _UriTypeConverter.cs
- OneOfScalarConst.cs
- CoTaskMemSafeHandle.cs
- OdbcConnectionHandle.cs
- BinaryParser.cs
- PreloadHost.cs
- MsmqBindingElementBase.cs
- CombinedGeometry.cs
- SapiGrammar.cs
- CollectionTypeElement.cs
- InternalBufferManager.cs
- FileVersionInfo.cs
- WebPartAuthorizationEventArgs.cs
- BezierSegment.cs
- SqlDeflator.cs
- GridViewUpdateEventArgs.cs
- BitStream.cs
- DirectoryLocalQuery.cs
- StructuralObject.cs
- TemplatedWizardStep.cs
- SelectingProviderEventArgs.cs
- HitTestResult.cs
- InkCanvasAutomationPeer.cs
- X509ThumbprintKeyIdentifierClause.cs
- TextBlockAutomationPeer.cs
- HiddenField.cs
- DelegateSerializationHolder.cs
- ReflectionUtil.cs
- BaseComponentEditor.cs
- HttpCachePolicyElement.cs
- ClaimSet.cs
- EnumType.cs
- SqlGenerator.cs
- AffineTransform3D.cs
- ConfigXmlAttribute.cs
- Int16Converter.cs