Какова полезность атрибута GeneratedCodeAttribute в С#?

Я сгенерировал некоторый код моего С# с помощью внешнего инструмента. Каждый сгенерированный класс имеет атрибут GeneratedCodeAttribute. Почему мой генератор создает этот атрибут?

Ответ 1

Этот атрибут был установлен, потому что этот код генерируется инструментом, а не человеком:), что его использовать, вы можете спросить? MSDN сообщает нам:

Класс GeneratedCodeAttribute может использовать инструменты анализа кода для идентифицировать компьютерный код и для обеспечения анализа, основанного на инструмента и версии инструмента, который сгенерировал код.

Ответ 2

Первая ссылка - это ее документация, а вторая ссылка - подробное описание того, для чего это необходимо, почему генераторы кода производят ее и как аналитики кода потребляют ее.

http://msdn.microsoft.com/en-us/library/system.codedom.compiler.generatedcodeattribute.aspx

и

https://blogs.msdn.microsoft.com/codeanalysis/2007/04/27/correct-usage-of-the-compilergeneratedattribute-and-the-generatedcodeattribute/

Отвечает ли это на ваш вопрос?

Ответ 3

Скорее всего, он используется генератором для поиска элементов, которые он создал, для выполнения, например, обновлений. Остерегайтесь, если вы измените сгенерированный код: в зависимости от поведения инструмента вы можете потерять свои изменения при дальнейшем обновлении.

Ответ 4

Одним из потенциальных преимуществ является то, что некоторые средства покрытия могут пропускать код на основе указанных атрибутов. Вы можете сообщить NCover игнорировать код с этим атрибутом.