private static bool GetRemoteEnlistmentId(EndpointAddress address, out Guid remoteEnlistmentId) { AddressHeaderCollection headers = address.Headers; if (headers.Count == 1) { AddressHeader header = headers.FindHeader("Enlistment", "http://schemas.microsoft.com/ws/2006/02/transactions"); if (header != null) { XmlDictionaryReader addressHeaderReader = header.GetAddressHeaderReader(); XmlDictionaryReader reader2 = addressHeaderReader; try { ControlProtocol protocol; EnlistmentHeader.ReadFrom(addressHeaderReader, out remoteEnlistmentId, out protocol); return(protocol == ControlProtocol.Durable2PC); } catch (InvalidEnlistmentHeaderException exception) { Microsoft.Transactions.Bridge.DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Information); } finally { if (reader2 != null) { reader2.Dispose(); } } } } remoteEnlistmentId = Guid.Empty; return(false); }
public static SelectorSetHeader ReadFrom(EndpointAddress address) { AddressHeader header = address.Headers.FindHeader(ElementName, ManagementNamespaces.Namespace); if (header == null) { return(null); } using (XmlDictionaryReader readerAtHeader = header.GetAddressHeaderReader()) { return(ReadFrom(readerAtHeader)); } }