Я сгенерировал часть своего кода C# с внешним инструментом. Каждый сгенерированный класс имеет атрибут GeneratedCodeAttribute. Почему мой генератор создает этот атрибут?
Этот атрибут был установлен, потому что этот код сгенерирован инструментом, а не человеком :) что это значит, спросите вы? MSDN говорит нам:
Класс GeneratedCodeAttribute может использоваться инструментами анализа кода для идентифицировать код, сгенерированный компьютером, и для предоставления анализа, основанного на инструмента и версии инструмента, который сгенерированного кода.
Первая ссылка - это его документация, а вторая ссылка - подробное описание того, для чего это нужно, почему генераторы кода его создают и как анализаторы кода его используют. .
http://msdn.microsoft.com/en-us/library/system.codedom.compiler.generatedcodeattribute.aspx
и
Это ответ на ваш вопрос?
Скорее всего, он используется генератором для поиска созданных им элементов, например, для выполнения обновлений. Будьте осторожны, если вы изменяете сгенерированный код: в зависимости от поведения инструмента вы можете потерять свои изменения при дальнейшем обновлении.
Одно из потенциальных применений заключается в том, что некоторые инструменты покрытия могут пропускать код на основе заданных атрибутов. Вы можете указать NCover игнорировать код с этим атрибутом.