Что эти свойства означают в Моно. Cecil?

Я пользуюсь совместно использованными библиотеками Lokad, который в свою очередь зависит от Моно. Cecil.

Я немного смущен, что следующие свойства означают (они относятся к внутренностям.NET и таким образом имеют эквивалентные внутренности.NET):

  • PackingSize (они относятся к типам, как это находится в TypeDefinition).
  • Mvid (в ModuleDefinition).
  • ExplicitThis (что-то, чтобы сделать с этим ключевым словом я знаю, но в MethodDefinition).
  • CallingConvention.
  • GetSentinel (метод, который возвращает интервал в MethodReference).
  • RVA.
  • SemanticsAttribute.
  • IsHideBySig.

Какая-либо идея, что они означают/?

6
задан itowlson 17 February 2010 в 17:57
поделиться

1 ответ

Я не слишком хорошо знаком с Cecil, но большинство этих пунктов связано с IL-файлом. Вот несколько ответов - все взяты из книги Сержа Лидина: Expert .Net 2.0 IL Assembler.

  • Packing Size = Коэффициент выравнивания в байтах. Должен быть установлен в 0 или в степень 2 от 1 до 128. (в таблице метаданных компоновки класса) (p122)

  • Mvid = глобально уникальный идентификатор, присваиваемый модулю при его генерации (или идентификатор версии модуля). (в таблице метаданных модуля) (p105)

  • Explicit This = сигнатура вызова метода. Первым явно указанным параметром является указатель экземпляра. Ключ ILAsm является явным. (p159)

  • CallingConvention = первый байт сигнатуры определяет тип сигнатуры, который по историческим причинам называется соглашением о вызове сигнатуры. (например: default, vararg, field, localsig, property, unmgd, hasthis, explicitthis) p158-159

  • GetSentinel = скорее всего, имеет отношение к модификатору sentinel, который обозначает начало необязательных аргументов, поставляемых для вызова метода vararg. (p152)

  • RVA = относительный виртуальный адрес: адрес элемента после его загрузки в память с вычитанием из него базового адреса файла изображения - другими словами, смещение элемента внутри файла изображения, загруженного в память. (p42)

  • SemanticsAttribute - скорее всего, имеет отношение к таблице MethodSemantics, которая связывает события и свойства с их ассоциированными методами и предоставляет информацию о типе ассоциации. Semantic может быть setter, getter, other (свойство) или addon, removeon или fire (событие). p317

  • IsHideBySig - метод скрывает все методы родительских классов, которые имеют совпадающую сигнатуру и имя (в отличие от совпадающего только имени). p188

6
ответ дан 17 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: