Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Diagnostics / ActivityIdHeader.cs / 1 / ActivityIdHeader.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Diagnostics { using System; using System.ServiceModel.Channels; using System.Diagnostics; using System.Xml; class ActivityIdHeader : DictionaryHeader { Guid guid; Guid headerId; internal ActivityIdHeader(Guid activityId) : base() { this.guid = activityId; this.headerId = Guid.NewGuid(); } internal static Guid ExtractActivityId(Message message) { if (message == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message"); } Guid guid = Guid.Empty; try { if (message.State != MessageState.Closed && message.Headers != null) { int index = message.Headers.FindHeader(DiagnosticStrings.ActivityId, DiagnosticStrings.DiagnosticsNamespace); // Check the state again, in case the message was closed after we found the header if (index >= 0) { using (XmlDictionaryReader reader = message.Headers.GetReaderAtHeader(index)) { guid = reader.ReadElementContentAsGuid(); } } } } #pragma warning suppress 56500 // covered by FxCOP catch (Exception e) { if (DiagnosticUtility.IsFatal(e)) { throw; } if (DiagnosticUtility.ShouldTraceError) { TraceUtility.TraceEvent(TraceEventType.Error, TraceCode.FailedToReadAnActivityIdHeader, null, e); } } return guid; } internal void AddTo(Message message) { if (message == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message"); } if (message.State != MessageState.Closed && message.Headers.MessageVersion.Envelope != EnvelopeVersion.None) { int index = message.Headers.FindHeader(DiagnosticStrings.ActivityId, DiagnosticStrings.DiagnosticsNamespace); if (index < 0) { message.Headers.Add(this); } } } protected override void OnWriteHeaderContents(XmlDictionaryWriter writer, MessageVersion messageVersion) { if (writer == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("writer"); } writer.WriteAttributeString("CorrelationId", this.headerId.ToString()); writer.WriteValue(this.guid); } public override XmlDictionaryString DictionaryName { get { return XD.ActivityIdFlowDictionary.ActivityId; } } public override XmlDictionaryString DictionaryNamespace { get { return XD.ActivityIdFlowDictionary.ActivityIdNamespace; } } } } // 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
- OleDbReferenceCollection.cs
- TreeNode.cs
- ValueExpressions.cs
- XmlNodeList.cs
- ResourceDescriptionAttribute.cs
- WinInetCache.cs
- Baml2006SchemaContext.cs
- WebPartTransformerAttribute.cs
- ClientRuntimeConfig.cs
- RSAOAEPKeyExchangeFormatter.cs
- Size.cs
- CatalogZoneDesigner.cs
- UncommonField.cs
- QilChoice.cs
- NumberFunctions.cs
- UriSection.cs
- TraceContextRecord.cs
- ReflectionUtil.cs
- EncryptedType.cs
- CacheHelper.cs
- ILGenerator.cs
- BinaryFormatterWriter.cs
- IPGlobalProperties.cs
- XPathDocument.cs
- SQLGuid.cs
- cookiecontainer.cs
- NavigationWindow.cs
- QuaternionAnimationBase.cs
- CellTreeNodeVisitors.cs
- ClientConfigPaths.cs
- Pair.cs
- SoapCodeExporter.cs
- AutomationPattern.cs
- SecurityCriticalDataForSet.cs
- DataGridViewCellFormattingEventArgs.cs
- SqlUserDefinedTypeAttribute.cs
- Schema.cs
- IntSecurity.cs
- GradientBrush.cs
- CountAggregationOperator.cs
- CommentAction.cs
- ServiceConfigurationTraceRecord.cs
- DataGridTableCollection.cs
- XmlSchemaSet.cs
- Operator.cs
- LinkUtilities.cs
- XPathNodeInfoAtom.cs
- DirectoryNotFoundException.cs
- SoapServerMessage.cs
- CommonXSendMessage.cs
- RelationshipSet.cs
- EventLogPermissionEntryCollection.cs
- GC.cs
- DispatcherTimer.cs
- Win32MouseDevice.cs
- DataGridViewAddColumnDialog.cs
- ProxyWebPartConnectionCollection.cs
- followingsibling.cs
- CommandBinding.cs
- GetPageCompletedEventArgs.cs
- ClientData.cs
- MaterialCollection.cs
- BevelBitmapEffect.cs
- EncryptedData.cs
- ContextProperty.cs
- XPathChildIterator.cs
- COAUTHIDENTITY.cs
- OutOfProcStateClientManager.cs
- TextSelectionProcessor.cs
- RemoteWebConfigurationHostStream.cs
- __Error.cs
- SingleAnimationBase.cs
- StrokeFIndices.cs
- BatchParser.cs
- CodeMethodReturnStatement.cs
- RootBrowserWindowAutomationPeer.cs
- NoResizeSelectionBorderGlyph.cs
- SoapAttributeOverrides.cs
- FormViewCommandEventArgs.cs
- FontStretches.cs
- ZoneIdentityPermission.cs
- ExceptQueryOperator.cs
- RotateTransform.cs
- TemplatePagerField.cs
- Style.cs
- LongAverageAggregationOperator.cs
- BinaryFormatterWriter.cs
- FontInfo.cs
- SymmetricSecurityProtocol.cs
- FormatConvertedBitmap.cs
- GeneratedContractType.cs
- EndEvent.cs
- CorrelationManager.cs
- CoreChannel.cs
- PropertyBuilder.cs
- CodeStatement.cs
- SharedPerformanceCounter.cs
- AssemblyBuilder.cs
- ChtmlLinkAdapter.cs
- COM2IVsPerPropertyBrowsingHandler.cs