Что означает ключевое слово сборки в AssemblyInfo.cs. Разрешает ли он использовать метод внутри?

Выделите фрагмент кода внутри AssemblyInfo.cs, например

[assembly: someattributename]

Что означает этот код?

Я даже видел какой-то метод, который можно использовать внутри сборки, например

[assembly: log4net.Config.XmlConfigurator(Watch=true)]

Этот атрибут больше?

Ответы

Ответ 1

Атрибуты всегда применяются к элементу (например, к методу, свойству). Префикс "сборка:" означает, что атрибут (часть, которую вы пропустили с использованием "*" ), применяется к сборке.

Применение атрибутов на уровне сборки. Если вы хотите применить атрибут на уровне сборки, используйте ключевое слово Assembly. Следующий код показывает атрибут AssemblyNameAttribute, применяемый на уровне сборки.

using System.Reflection;
[assembly:AssemblyTitle("My Assembly")]

Когда этот атрибут применяется, строка "MyAssembly" помещается в манифест сборки в части метаданных файла. Вы можете просмотреть атрибут либо с помощью MSIL Disassembler (Ildasm.exe), либо путем создания пользовательской программы для извлечения атрибута.

Ответ 2

Это означает, что это атрибут на самой сборке, а не на определенный класс, метод, свойство и т.д.

Ответ 3

Это атрибуты сборки, как описано здесь.

Они составляют информацию о версии для вашей сборки (или: исполняемый файл), например.

Ответ 4

Общие сведения об этой сборке контролируются с помощью этого набора атрибутов.

простое объяснение показано в этой Ссылка

Ответ 5

assembly: - это то, что известно как цель атрибута. Он указывает, что атрибут применяется к самой сборке, а не к любым типам внутри сборки. Некоторые другие целевые объекты атрибута: module, return и param.

См. " Атрибуты (С# и Visual Basic)".

Ответ 6

Во вторую (отредактированную) часть вашего ответа:

Нет, это не вызов метода. log4net.Config.XmlConfigurator также является attribute, определяемым log4net. (См. документация для деталей журнала4.) Его точное объявление

public class XmlConfiguratorAttribute : ConfiguratorAttribute

В этом случае немного ошибочно вводится соглашение об именовании атрибутов. Это означает, что при использовании атрибута (даже на уровне сборки) вы можете оставить суффикс Attribute из имени класса атрибута.