我正在创建属性,我需要传递异常数组,怎么做?
让我们说
[assembly: MyAttribute(ExceptionList = [System.Web.HttpException, System.Threading.ThreadAbortException]);
答案 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 {
...
}