Я бы принял следующий процесс:
Первая часть должна быть довольно простой, если рассматриваемые атрибуты определены в вашем решении.
Если атрибуты взяты из зависимостей, то вам, возможно, придется использовать regex-поиск, чтобы найти места, где используются такие атрибуты.
Вы объявили такой класс, как:
[SomeAttribute(new string[] { "foo", "bar" })
class SomeClass { }
, или объявили атрибут, например:
class SomeAttribute : Attribute
{
public SomeAttribute(string[] arr) { } // or another array
}
И все это происходит, потому что ваша сборка отмечена чтобы соответствовать требованиям CLSC:
[сборка: CLSCompliant (true)]