Для чего обычно используется токен? Что еще более важно, если у меня есть MetadataToken, могу ли я вернуть объект MethodInfo?Какова цель MethodInfo.MetadataToken
ответ
Идентификатор метаданных - это то, что является частью спецификации CIL для организации данных. Это во многом то, о чем вам никогда не нужно заботиться.
Более конкретно, токен метаданных является кортежем идентификатора таблицы и идентификатора ресурса.
Вы не можете полагаться на токен метаданных, чтобы оставаться согласованным между компиляторами, поэтому я бы не использовал его для идентификации метода.
Вы можете использовать Module.ResolveMethod
, чтобы преобразовать токен метаданных обратно в MethodBase. MethodBase - базовый тип для MethodInfo. Если токен метаданных предназначен для метода (в отличие от конструктора), вы должны быть в состоянии передать его в MethodInfo.
Сборка состоит из одного или нескольких модулей, но практически сборка содержит только один модуль - компиляторы C# и VB.NET не создают многомодульные сборки.