如何将Exceptions数组传递给Attribute

时间:2011-08-04 13:07:31

标签: c# exception object attributes

我正在创建属性,我需要传递异常数组,怎么做?

让我们说

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

2 个答案:

答案 0 :(得分:1)

如果您想传递例外类型,那么您可以使用typeof

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

如果要传递异常对象,则无法进行。属性构造函数的参数只能是常量值(或者为其做出特殊异常的几种类型的表达式)。

答案 1 :(得分:0)

您需要传递类型列表而不是例外。这应该让你开始

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

[MyAttribute(new Type[] { typeof(ArgumentException), typeof(OtherException) } )]
class Test {
    ...
}