//---------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace System.ServiceModel.Security { sealed class LaxTimestampLastModeSecurityHeaderElementInferenceEngine : LaxModeSecurityHeaderElementInferenceEngine { static LaxTimestampLastModeSecurityHeaderElementInferenceEngine instance = new LaxTimestampLastModeSecurityHeaderElementInferenceEngine(); LaxTimestampLastModeSecurityHeaderElementInferenceEngine() { } internal new static LaxTimestampLastModeSecurityHeaderElementInferenceEngine Instance { get { return instance; } } public override void MarkElements(ReceiveSecurityHeaderElementManager elementManager, bool messageSecurityMode) { for (int position = 0; position < elementManager.Count - 1; position++) { if (elementManager.GetElementCategory(position) == ReceiveSecurityHeaderElementCategory.Timestamp) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(SR.GetString(SR.TimestampMustOccurLastInSecurityHeaderLayout))); } } base.MarkElements(elementManager, messageSecurityMode); } } }