Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法在自定义异常类中重写GetObjectData,而不使用APTCA?_C#_.net_Code Access Security - Fatal编程技术网

C# 有没有办法在自定义异常类中重写GetObjectData,而不使用APTCA?

C# 有没有办法在自定义异常类中重写GetObjectData,而不使用APTCA?,c#,.net,code-access-security,C#,.net,Code Access Security,我有一个部分受信任的AppDomain沙盒,我执行方法X,它实例化MyException: 程序集A,其中包含MyException,未以完全信任的方式加载到沙盒中。在沙盒中执行X时,会发生TypeLoadException: 重写成员MyException.GetObjectData时违反了继承安全规则 我认为,在GetObjectData上设置[SecurityCritical]是它所需要的,但它似乎没有效果 如果我将[assembly:AllowPartiallyTrustedCalle

我有一个部分受信任的AppDomain沙盒,我执行方法
X
,它实例化MyException:

程序集
A
,其中包含
MyException
,未以完全信任的方式加载到沙盒中。在沙盒中执行
X
时,会发生
TypeLoadException

重写成员MyException.GetObjectData时违反了继承安全规则

我认为,在
GetObjectData
上设置
[SecurityCritical]
是它所需要的,但它似乎没有效果

如果我将
[assembly:AllowPartiallyTrustedCallers]
添加到
A
,并将
A
以完全信任的方式加载到沙箱中,则此代码工作正常。但是,
A
包含许多类,我只在这个特定的
GetObjectData
中遇到这个问题

在不恢复到旧的安全模型的情况下,有没有办法使
MyException
在没有
AllowPartiallyTrustedCallers
的情况下工作,并且不以完全信任的方式加载它?

可能重复的
[Serializable]
class MyException: Exception
{
    public MyException():base("My exception") { }

    protected MyException(SerializationInfo serializationInfo, StreamingContext streamingContext)
        : base(serializationInfo, streamingContext) { }

    [SecurityCritical]
    public override void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        base.GetObjectData(info, context);
        Console.WriteLine("A line");
    }
}