I have a class that inherits from Exception. In .NET 4, I started receiving a runtime error:
Inheritance security rules violated while overriding member: MyBusinessException.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being overriden.
I think the issue is caused by the fact that I am overriding GetObjectData.
I know one answer for resolving the issue is to set the SecurityRuleSet:
[assembly: SecurityRules(SecurityRuleSet.Level1)]
This is not an acceptable answer, I'd like to know how to fix the issue without having to relax the default security rules in .NET 4.