Сборка запросов - PullRequest
2 голосов
/ 22 мая 2009

У меня есть сборка .NET, в которой есть десятки классов и методов, которые являются методами модульного тестирования. Я хочу создать отчет со всеми методами, помеченными атрибутом Ignore, Вы знаете простой способ сделать это?

1 Ответ

6 голосов
/ 22 мая 2009

Вы хотите получить Пользовательские атрибуты метод

Assembly ass = Assembly.Load("yourassembly.dll");
object[] attributes = ass.GetCustomAttributes(typeof(IgnoreAttribute), false));

Этот метод также существует в объекте метода, поэтому вы можете перебирать все типы в вашей сборке, перебирать все их методы и вызывать один и тот же метод.

foreach(Type type in ass.GetTypes()) {
    foreach(MethodInfo method in type.GetMethods()) {
       method.GetCustomAttributes(typeof(IgnoreAttribute), true));
    }
}

Edit, Вот некоторая помощь с синтаксисом PowerShell, хотя я должен сказать, что я НЕ беглый PowerShell. Я уверен, что кто-то может сделать это лучше, чем дерьмо, которое у меня есть ниже.

$types = [System.Reflection.Assembly]::LoadFile("C:\dll.dll").GetTypes()
$attribute = [System.Type]::GetType("IgnoreAttribute")
foreach ($type in $types) { 
    $methods = $type.GetMethods()
    foreach ($method in $methods) { 
    if ($method .GetCustomAttributes($attribute).Length -gt 0) { 
        $method.Name
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...