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
- AttributeUsageAttribute.cs
- SecurityTokenException.cs
- OleDbInfoMessageEvent.cs
- EncodingDataItem.cs
- AssertHelper.cs
- DataObjectMethodAttribute.cs
- TextTreeTextNode.cs
- DataListItemEventArgs.cs
- TextTreePropertyUndoUnit.cs
- SqlProviderManifest.cs
- TransportContext.cs
- HighContrastHelper.cs
- Pen.cs
- BitmapImage.cs
- InputDevice.cs
- ErrorFormatter.cs
- VerticalConnector.xaml.cs
- PositiveTimeSpanValidator.cs
- CharacterString.cs
- XmlSerializationReader.cs
- NamespaceCollection.cs
- PropertyEntry.cs
- ReferentialConstraint.cs
- RectAnimationUsingKeyFrames.cs
- Mouse.cs
- Semaphore.cs
- ConfigDefinitionUpdates.cs
- ProxyOperationRuntime.cs
- FlowDocumentReaderAutomationPeer.cs
- SignatureGenerator.cs
- HtmlInputCheckBox.cs
- FigureParagraph.cs
- PointAnimationUsingKeyFrames.cs
- SqlFunctionAttribute.cs
- XamlPoint3DCollectionSerializer.cs
- DataKeyArray.cs
- Vector3dCollection.cs
- ColumnBinding.cs
- Lease.cs
- MsdtcClusterUtils.cs
- XmlWrappingWriter.cs
- FormViewModeEventArgs.cs
- InternalControlCollection.cs
- DataGridViewCellConverter.cs
- SizeChangedEventArgs.cs
- EntityDataSourceDataSelectionPanel.designer.cs
- AttributeProviderAttribute.cs
- RawAppCommandInputReport.cs
- MergePropertyDescriptor.cs
- XmlNamespaceMapping.cs
- StylusPlugInCollection.cs
- SQLUtility.cs
- ServiceMetadataExtension.cs
- XmlUtilWriter.cs
- SqlOuterApplyReducer.cs
- PrimitiveType.cs
- GraphicsContext.cs
- NavigationProperty.cs
- DbConnectionStringCommon.cs
- MailSettingsSection.cs
- AppearanceEditorPart.cs
- CommandManager.cs
- TimeoutValidationAttribute.cs
- XmlDocumentFieldSchema.cs
- AdRotator.cs
- PartialList.cs
- CodeConstructor.cs
- InvalidFilterCriteriaException.cs
- SoapReflectionImporter.cs
- SoapReflectionImporter.cs
- EmbeddedMailObjectsCollection.cs
- CellCreator.cs
- MarkupCompilePass1.cs
- FormsAuthentication.cs
- ButtonBaseAutomationPeer.cs
- keycontainerpermission.cs
- grammarelement.cs
- ItemCheckEvent.cs
- TextFormattingConverter.cs
- _NetworkingPerfCounters.cs
- ListBox.cs
- SelectionUIHandler.cs
- ElapsedEventArgs.cs
- CharUnicodeInfo.cs
- StrongNameMembershipCondition.cs
- Predicate.cs
- CryptoProvider.cs
- LockCookie.cs
- ClientSettingsProvider.cs
- HwndSource.cs
- OperatingSystem.cs
- TextProperties.cs
- DataGrid.cs
- TraceContextRecord.cs
- WebServiceReceive.cs
- Empty.cs
- TiffBitmapEncoder.cs
- FormViewAutoFormat.cs
- ClientBase.cs
- Win32.cs