Как передать массив исключений в атрибут - PullRequest
0 голосов
/ 04 августа 2011

Я создаю атрибут, где мне нужно передать массив исключений, как это сделать?

Допустим,

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

Ответы [ 2 ]

1 голос
/ 04 августа 2011

Если вы хотите передать исключение типов , вы можете использовать typeof:

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

Если вы хотите передать исключение объекты , это невозможный.Аргументы для конструкторов атрибутов могут быть только постоянными значениями (или выражениями пары типов, для которых сделано специальное исключение).

0 голосов
/ 04 августа 2011

Вам нужно передать список типов, а не исключения. Это должно начать вас

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

[MyAttribute(new Type[] { typeof(ArgumentException), typeof(OtherException) } )]
class Test {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...