namespace System.Web.Util { using System; using System.Diagnostics.CodeAnalysis; using System.Runtime.Serialization; // Thrown when the AppVerifier fails an assert. // This type is used solely as a support / diagnostics tool and will never appear over the normal course of an application. // Specifically, it will never cross an AppDomain boundary, and we don't want to mark it as [Serializable] since that is // essentially a public contract, and the AppVerifier feature has no public API surface. We want to retain the ability to // change this feature on a whim without risk of breaking anybody. [SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Justification = "Doesn't need to be serializable.")] internal sealed class AppVerifierException : Exception { private readonly AppVerifierErrorCode _errorCode; public AppVerifierException(AppVerifierErrorCode errorCode, string message) : base(message) { _errorCode = errorCode; } private AppVerifierException(SerializationInfo info, StreamingContext context) : base(info, context) { } public AppVerifierErrorCode ErrorCode { get { return _errorCode; } } } }