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
- StaticExtension.cs
- WorkflowTerminatedException.cs
- NativeMethods.cs
- XmlUrlResolver.cs
- XmlAttributeCollection.cs
- ExpressionBuilderCollection.cs
- InputDevice.cs
- UInt64Storage.cs
- Margins.cs
- DesignerAdapterAttribute.cs
- DESCryptoServiceProvider.cs
- EditorZoneBase.cs
- StrokeCollectionDefaultValueFactory.cs
- Stack.cs
- FastEncoder.cs
- NameObjectCollectionBase.cs
- SqlDataAdapter.cs
- SocketAddress.cs
- Metafile.cs
- ThreadStaticAttribute.cs
- CompilerTypeWithParams.cs
- DrawingState.cs
- WebPartManager.cs
- DrawingGroup.cs
- UrlPath.cs
- InternalCache.cs
- RenderingBiasValidation.cs
- BindingManagerDataErrorEventArgs.cs
- BuildProviderUtils.cs
- StreamFormatter.cs
- PathParser.cs
- CompilationRelaxations.cs
- IndexOutOfRangeException.cs
- EntityDataSourceConfigureObjectContextPanel.cs
- RemoteWebConfigurationHostServer.cs
- HighlightVisual.cs
- connectionpool.cs
- StateMachineWorkflowDesigner.cs
- ViewStateModeByIdAttribute.cs
- BitmapFrameEncode.cs
- EntryIndex.cs
- PolyLineSegment.cs
- CheckPair.cs
- RepeatBehaviorConverter.cs
- TextChangedEventArgs.cs
- DashStyles.cs
- altserialization.cs
- ShapingEngine.cs
- XPathDocumentNavigator.cs
- Error.cs
- DbConnectionFactory.cs
- ScriptModule.cs
- DebugView.cs
- BuildProvidersCompiler.cs
- LexicalChunk.cs
- SlipBehavior.cs
- ScriptingRoleServiceSection.cs
- SelectionRange.cs
- CommentAction.cs
- CheckBox.cs
- DatagridviewDisplayedBandsData.cs
- WebBaseEventKeyComparer.cs
- SafeCoTaskMem.cs
- SvcFileManager.cs
- GroupQuery.cs
- WebPartMovingEventArgs.cs
- HttpFileCollection.cs
- UnorderedHashRepartitionStream.cs
- Mappings.cs
- CodeVariableDeclarationStatement.cs
- FontEditor.cs
- TextAnchor.cs
- CodePageEncoding.cs
- BevelBitmapEffect.cs
- ControlsConfig.cs
- ObjectNavigationPropertyMapping.cs
- MemberJoinTreeNode.cs
- PrintDialogException.cs
- Compress.cs
- ListManagerBindingsCollection.cs
- HtmlElementErrorEventArgs.cs
- SQLInt64.cs
- HttpPostProtocolImporter.cs
- ExpressionsCollectionConverter.cs
- _LocalDataStoreMgr.cs
- MatrixValueSerializer.cs
- CSharpCodeProvider.cs
- LocalizableAttribute.cs
- BaseValidator.cs
- NativeActivityTransactionContext.cs
- Types.cs
- DispatcherHookEventArgs.cs
- XmlSubtreeReader.cs
- BamlBinaryReader.cs
- SqlDuplicator.cs
- ComponentEditorPage.cs
- FilteredReadOnlyMetadataCollection.cs
- ClientConvert.cs
- DependencyProperty.cs
- XmlILAnnotation.cs