Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
// -------------------------------------------------------// Token: 0x20000001// Name : CarLibrary// Public Key :// Hash Algorithm : 0x00008004// Version: 1.0.0.1// Major Version: 0x00000001// Minor Version: 0x00000000// Build Number: 0x00000000// Revision Number: 0x00000001// Locale: <null>// Flags : [none] (00000000)Документирование ссылаемых сборок
В дополнение к маркеру
AssemblyTypeDefTypeRefAssemblyRef #nSystem.RuntimeAssemblyRefSystem.Runtime// AssemblyRef #1 (23000001)// -------------------------------------------------------// Token: 0x23000001// Public Key or Token: b0 3f 5f 7f 11 d5 0a 3a// Name: System.Runtime// Version: 5.0.0.0// Major Version: 0x00000005// Minor Version: 0x00000000// Build Number: 0x00000000// Revision Number: 0x00000000// Locale: <null>// HashValue Blob:// Flags: [none] (00000000) Документирование строковых литералов
Последний полезный аспект, относящийся к метаданным .NET Core, связан с тем, что все строковые литералы в кодовой базе документируются внутри маркера
User Strings// User Strings// -------------------------------------------------------// 70000001 : (23) L"CarLibrary Version 2.0!"// 70000031 : (13) L"Quiet time..."// 7000004d : (11) L"Jamming {0}"// 70000065 : (32) L"Eek! Your engine block exploded!"// 700000a7 : (34) L"Ramming speed! Faster is better..."На заметку! Всегда помните о том, что все строки явным образом документируются в метаданных сборки, как продемонстрировано в представленном выше листинге метаданных. Это может привести к крупным последствиям в плане безопасности, если вы применяете строковые литералы для хранения паролей, номеров кредитных карт или другой конфиденциальной информации.
У вас может возникнуть вопрос о том, каким образом задействовать такую информацию в разрабатываемых приложениях (в лучшем сценарии) или зачем вообще заботиться о метаданных (в худшем сценарии). Чтобы получить ответ, необходимо ознакомиться со службами рефлексии .NET Core. Следует отметить, что полезность рассматриваемых далее тем может стать ясной только ближе к концу главы, а потому наберитесь терпения.
На заметку! В разделе
METAINFOCustomAttributeПонятие рефлексии
В мире .NET Core рефлексией называется процесс обнаружения типов во время выполнения. Службы рефлексии дают возможность получать программно ту же самую информацию о метаданных, которую генерирует утилита
ildasm.exe*.dll*.ехеКак и любое другое пространство имен,
System.ReflectionSystem.Runtime.dllSystem.Reflection
Чтобы понять, каким образом задействовать пространство имен
System.ReflectionSystem.ТуреКласс System.Туре
В классе
System.ТуреSystem.ReflectionТуре.GetMethods()MethodInfoType.GetFields()FieldInfoSystem.ТуреSystem.Туре
Получение информации о типе с помощью System.Object.GetType()
Экземпляр класса
ТуреТуреnewТуреSystem.ObjectGetType()ТуреПохожие книги на "Язык программирования C#9 и платформа .NET5", Троелсен Эндрю
Троелсен Эндрю читать все книги автора по порядку
Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.