|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel
{
using System.Runtime;
using System.Runtime.Serialization;
using System.Security;
using System.Security.Permissions;
[Serializable]
public class MsmqPoisonMessageException : PoisonMessageException
{
long messageLookupId = 0;
public MsmqPoisonMessageException() { }
public MsmqPoisonMessageException(string message) : base(message) { }
public MsmqPoisonMessageException(string message, Exception innerException) : base(message, innerException) { }
public MsmqPoisonMessageException(long messageLookupId) : this(messageLookupId, null) { }
public MsmqPoisonMessageException(long messageLookupId, Exception innerException)
: base(SR.GetString(SR.MsmqPoisonMessage), innerException)
{
this.messageLookupId = messageLookupId;
}
public long MessageLookupId
{
get { return this.messageLookupId; }
}
protected MsmqPoisonMessageException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
this.messageLookupId = (long)info.GetValue("messageLookupId", typeof(long));
}
#pragma warning disable 688 // This is a Level1 assembly: a Level2 [SecurityCrital] on public members are turned into [SecuritySafeCritical] + LinkDemand
[Fx.Tag.SecurityNote(Critical = "Overrides the base.GetObjectData which is critical, as well as calling this method.",
Safe = "Replicates the LinkDemand.")]
[SecurityCritical]
[SecurityPermissionAttribute(SecurityAction.LinkDemand, SerializationFormatter = true)]
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{
base.GetObjectData(info, context);
info.AddValue("messageLookupId", this.messageLookupId);
}
#pragma warning restore 688
}
}
|