如何将异常数组传递给属性

本文关键字:属性 数组 异常 | 更新日期: 2023-09-27 18:04:24

我正在创建属性,我需要传递异常数组,如何做到这一点?

比如说

[assembly: MyAttribute(ExceptionList = [System.Web.HttpException, System.Threading.ThreadAbortException]); 

如何将异常数组传递给属性

如果你想传递异常类型,那么你可以使用typeof:

[assembly: MyAttribute(ExceptionList = [typeof(System.Web.HttpException), typeof(System.Threading.ThreadAbortException])); 

如果你想传递异常对象,这是不可能的。属性构造函数的参数只能是常数值(或者是一对特殊异常类型的表达式)。

您需要传递一个类型列表而不是异常。这应该可以让你开始

[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
sealed class MyAttribute : Attribute {
    public MyAttribute(Type[] exceptionList) {
    }
}
[MyAttribute(new Type[] { typeof(ArgumentException), typeof(OtherException) } )]
class Test {
    ...
}