File: System\Runtime\DurableInstancing\InstancePersistenceCommandException.cs
Project: ndp\cdf\src\NetFx40\System.Runtime.DurableInstancing\System.Runtime.DurableInstancing.csproj (System.Runtime.DurableInstancing)
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------
namespace System.Runtime.DurableInstancing
{
    using System.Diagnostics.CodeAnalysis;
    using System.Runtime.Serialization;
    using System.Security;
    using System.Xml.Linq;
 
    [Serializable]
    public class InstancePersistenceCommandException : InstancePersistenceException
    {
        const string InstanceIdName = "instancePersistenceInstanceId";
 
        public InstancePersistenceCommandException()
        {
        }
 
        public InstancePersistenceCommandException(string message)
            : base(message)
        {
        }
 
        public InstancePersistenceCommandException(string message, Exception innerException)
            : base(message, innerException)
        {
        }
 
        public InstancePersistenceCommandException(XName commandName)
            : base(commandName)
        {
        }
 
        public InstancePersistenceCommandException(XName commandName, Guid instanceId)
            : base(commandName)
        {
            InstanceId = instanceId;
        }
 
        public InstancePersistenceCommandException(XName commandName, Exception innerException)
            : base(commandName, innerException)
        {
        }
 
        public InstancePersistenceCommandException(XName commandName, string message, Exception innerException)
            : base(commandName, message, innerException)
        {
        }
 
        public InstancePersistenceCommandException(XName commandName, Guid instanceId, Exception innerException)
            : base(commandName, innerException)
        {
            InstanceId = instanceId;
        }
 
        public InstancePersistenceCommandException(XName commandName, Guid instanceId, string message, Exception innerException)
            : base(commandName, message, innerException)
        {
            InstanceId = instanceId;
        }
 
        [SecurityCritical]
        protected InstancePersistenceCommandException(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
            InstanceId = (Guid)info.GetValue(InstanceIdName, typeof(Guid));
        }
 
        public Guid InstanceId { get; private set; }
 
        [Fx.Tag.SecurityNote(Critical = "Overrides critical inherited method")]
        [SecurityCritical]
        [SuppressMessage(FxCop.Category.Security, FxCop.Rule.SecureGetObjectDataOverrides,
            Justification = "Method is SecurityCritical")]
        public override void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            base.GetObjectData(info, context);
            info.AddValue(InstanceIdName, InstanceId, typeof(Guid));
        }
    }
}