Разница между метаданными и манифестом

Я изучаю .NET framework и читаю через метаданных и Манифест.

"метаданные-это данные о данных, а Манифест-данные о сборке!!"

Q:так не является ли Манифест метаданными?

тогда в чем его отличия?

5 ответов


Manifest поддерживает информацию о сборках как версия, имя locale и необязательное строгое имя, которое уникальная идентификация сборки. Этот манифест информация используется CLR. Манифест также содержит безопасность требует проверить эту сборку. Это также содержит имена и хэши всех файлов, которые составляют собрание. Манифест сборки .NET содержит криптографический хэш различных модулей в сборке. И когда сборка загружена, среда CLR пересчитывает хэш модулей под рукой и сравнивает его с встроенный хэш. Если хэш, созданный во время выполнения, отличается из найденного в манифесте .NET отказывается загружать сборка и создает исключение.

метаданные-это данные о данных. Метаданные дают типы, доступные в этой сборке, а именно: классы, интерфейсы, перечисления, структуры и т. д. и их содержащие пространства имен, имя каждого типа, его видимость / область, его базовый класс, этот реализованные интерфейсы, их методы и область применения, и параметры каждого метода, свойства типа и так далее. Метаданные сборки генерируются на высоком уровне компиляторы автоматически из исходных файлов. Компилятор встраивает метаданные в целевой выходной файл, dll, -. exe или .netmodule-фалами MSIL следует в случае многомодульной собрание.


вот самый простой ответ.

Assembly: один или несколько файлов, содержащих вашу программу. Обычно Exe или dll или сочетание этих и некоторых других наборов файлов

метаданные: содержит оба 1) Метаданные Сборки 2) Введите Метаданные.

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

2)метаданные типа-это экспортированные типы данных и Методы сборки.

enter image description here


манифест: он хранит информацию (например, имя сборок, версию и т. д.) о сборках, которая требуется CLR для загрузки сборок.

метаданные: он хранит детали сборок, таких как имя метода, это члены и т. д.

оба файла генерируются компилятором автоматически при преобразовании кода в MSIL.


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


с "Программирование .NET компонентов, второе издание" от Juval Lowy опубликовано O'Reilly страница 39 Первый абзац:

метаданных:

метаданные-это полный способ описания того, что находится в сборке .NET. Копание в метаданные дает типы, доступные в этой сборке, именно. классы, интерфейсы, перечисления, структуры и т. д. и их содержание пространства имен, имя каждого типа, его видимость / область, его база класс, интерфейсы, которые он реализовал, его методы и их область параметры каждого метода, свойства типа и так далее. Собрание metada генерируется компиляторами высокого уровня автоматически из исходный файл. Компилятор внедряет метаданные в целевой вывод файл, dll, an .exe или .netmodule-фалами MSIL следует в случае многомодульной собрание. В случае многомодульного модуля сборки ever, который содержит IL должен иметь метаданные, встроенные в него для описания типов в этот модуль. Требуется каждый компилятор, предназначенный для .NET CLR создание и внедрение метаданных в выходной файл, а также метаданные должны быть в стандартном формате. Отражение .NET экстенсивно использует метаданные, чтобы узнать информацию о типе динамично.

метаданные-это дополнительная информация в управляемой сборке, описывающая такие вещи, как типы, имена типов, имена методов и т. д. (В основном, информация, которую вы можете получить из служб отражения). Вижу http://msdn2.microsoft.com/en-us/library/ms404430.aspx для более подробной информации.

Манифеста:

метаданные описывают содержимое сборки, тогда как манифест описывает саму сборку, предоставляя общие логические атрибуты всеми модулями и всеми компонентами в сборке. Манифест содержит имя сборки, номер версии, язык и необязательный сильное имя, которое уникально идентификация ассамблеи. Этот манифест информация используется CLR. Манифест также содержит безопасность требует проверить эту сборку. Он также содержит имена и хэши всех файлов, которые составляют сборку. сеть манифест сборки содержит криптографический хэш различных модулей в Ассамблее. И когда сборка загружена, среда CLR пересчитывает хэш модулей под рукой и сравнивает его с embeded хэш. Если хэш, созданный во время выполнения отличается от найденного в манифест .NET отказывается загружать сборку и выдает исключение. Это отличается от COM, под COM можно замените исходный DLL или EXE-файл другим, который имеет тот же тип Библиотеки / интерфейсы и наносят ущерб системе, запустив код malacious. Манифест также генерируется автоматически компилятор высокого уровня из исходных файлов всех модулей собрание. Манифест внедряется только в один физический файл и только один раз поскольку он является общим для всех модулей в сборке, а метаданные должны быть встроены во все модули. Интернет .Чистая среда CLR-совместимый компиляторы должны генерировать манифест и он должен быть в стандарте формат. Использование манифеста .NET захватывает сведения о других связанная сборка. Это обеспечивает совместимость версий, и сборка получает возможность взаимодействовать с точным доверенным набором других сборки он ожидает. Манифест содержит все сборка имя, его открытый ключ( если доступно строгое имя), его версия номер и место. При запуске этой сборки .NET гарантирует, что используются только эти конкретные сборки, которые совместимы версии загружаются.

"Манифест" - довольно перегруженный термин. В .NET "манифест сборки" - это некоторые метаданные в сборке, описывающие материал управления версиями. Смотрите здесьhttp://msdn2.microsoft.com/en-us/library/1w45z383.aspx Для больше подробности.

вы можете узнать больше о манифесте сборки здесь

метаданные об общей сборке и модулях называются манифестом