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
- AddInProcess.cs
- BufferedWebEventProvider.cs
- GenericPrincipal.cs
- QueuedDeliveryRequirementsMode.cs
- ContentType.cs
- AdapterDictionary.cs
- InfiniteTimeSpanConverter.cs
- AuthorizationRule.cs
- AutomationElement.cs
- CompilerParameters.cs
- PasswordTextNavigator.cs
- ConnectorRouter.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- XmlDictionaryReader.cs
- ServicePointManagerElement.cs
- SqlXmlStorage.cs
- DesignDataSource.cs
- DataGridViewComboBoxColumn.cs
- _SSPIWrapper.cs
- TraceUtility.cs
- PathParser.cs
- WebPageTraceListener.cs
- localization.cs
- PermissionListSet.cs
- CollectionBuilder.cs
- FilterQuery.cs
- RepeatInfo.cs
- DataControlFieldTypeEditor.cs
- BStrWrapper.cs
- AssemblyName.cs
- recordstate.cs
- EditCommandColumn.cs
- OleDbStruct.cs
- _NegoState.cs
- ModulesEntry.cs
- CompilationRelaxations.cs
- AffineTransform3D.cs
- ConfigXmlWhitespace.cs
- XamlClipboardData.cs
- ServiceModelDictionary.cs
- VolatileEnlistmentState.cs
- DictionaryEntry.cs
- DelegatingStream.cs
- XmlDataImplementation.cs
- DataBindingExpressionBuilder.cs
- MultipartIdentifier.cs
- PreApplicationStartMethodAttribute.cs
- AssemblyAttributesGoHere.cs
- DeadCharTextComposition.cs
- GridItemPattern.cs
- AudioFileOut.cs
- DataGridViewAutoSizeModeEventArgs.cs
- Boolean.cs
- SocketElement.cs
- ParagraphResult.cs
- XmlUTF8TextWriter.cs
- querybuilder.cs
- XamlGridLengthSerializer.cs
- SettingsBindableAttribute.cs
- AppDomain.cs
- QuaternionKeyFrameCollection.cs
- TypeTypeConverter.cs
- SiteOfOriginContainer.cs
- FtpWebRequest.cs
- DecoderFallbackWithFailureFlag.cs
- TabItemAutomationPeer.cs
- CodeNamespaceImportCollection.cs
- TargetPerspective.cs
- Point4D.cs
- ListenerAdapter.cs
- TemplateEditingService.cs
- SystemIPInterfaceProperties.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- WindowsImpersonationContext.cs
- DependencyPropertyHelper.cs
- XPathAncestorIterator.cs
- SiteMapSection.cs
- HwndHost.cs
- DataTableReader.cs
- ISAPIRuntime.cs
- CompModSwitches.cs
- ScriptingAuthenticationServiceSection.cs
- CSharpCodeProvider.cs
- ZipIOExtraFieldPaddingElement.cs
- CapabilitiesRule.cs
- OletxTransactionManager.cs
- Color.cs
- DropTarget.cs
- EntitySqlQueryBuilder.cs
- DataServiceKeyAttribute.cs
- WebPartConnectionsEventArgs.cs
- MatrixValueSerializer.cs
- ViewManager.cs
- WebPartCollection.cs
- GradientSpreadMethodValidation.cs
- TemplateManager.cs
- OracleTimeSpan.cs
- FaultDesigner.cs
- LookupBindingPropertiesAttribute.cs
- HostProtectionException.cs