Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
// Применение типа AssemblyName для определения отображаемого имени.AssemblyName asmName;asmName = new AssemblyName();asmName.Name = "CarLibrary";Version v = new Version("1.0.0.0");asmName.Version = v;Assembly a = Assembly.Load(asmName);Чтобы загрузить сборку .NET Framework (не .NET Core), в параметре
Assembly.Load()PublicKeyTokenFrameworkAssemblyViewerMicrosoft.EntityFrameworkCoredotnet new console -lang c# -n FrameworkAssemblyViewer -o .FrameworkAssemblyViewer -f net5.0dotnet sln .Chapter17_AllProjects.sln add .FrameworkAssemblyViewerdotnet add .FrameworkAssemblyViewer package Microsoft.EntityFrameworkCore -v 5.0.0Вспомните, что в случае ссылки на другую сборку копия этой сборки помещается в выходной каталог ссылаемого проекта. Скомпилируйте проект с применением CLI:
dotnet buildПосле создания проекта, добавления ссылки на
EntityFrameworkCodeusing System;using System.Linq;using System.Reflection;Console.WriteLine("***** The Framework Assembly Reflector App *****n");// Загрузить Microsoft.EntityFrameworkCore.dllvar displayName = "Microsoft.EntityFrameworkCore, Version=5.0.0.0, Culture="", PublicKeyToken=adb9793829ddae60"; Assembly asm = Assembly.Load(displayName); DisplayInfo(asm); Console.WriteLine("Done!"); Console.ReadLine();private static void DisplayInfo(Assembly a){ Console.WriteLine("***** Info about Assembly *****"); Console.WriteLine($"Asm Name: {a.GetName().Name}" ); // Имя сборки Console.WriteLine($"Asm Version: {a.GetName().Version}"); // Версия сборки Console.WriteLine($"Asm Culture: {a.GetName().CultureInfo.DisplayName}"); // Культура сборки Console.WriteLine("nHere are the public enums:"); // Список открытых перечислений. // Использовать запрос LINQ для нахождения открытых перечислений. Type[] types = a.GetTypes(); var publicEnums = from pe in types where pe.IsEnum && pe.IsPublic select pe; foreach (var pe in publicEnums) { Console.WriteLine(pe); }}К настоящему моменту вы должны уметь работать с некоторыми основными членами пространства имен
System.ReflectionПонятие позднего связывания
Позднее связывание представляет собой прием, который позволяет создавать экземпляр заданного типа и обращаться к его членам во время выполнения без необходимости в жестком кодировании факта его существования на этапе компиляции. При построении приложения, в котором производится позднее связывание с типом из внешней сборки, нет причин устанавливать ссылку на эту сборку; следовательно, в манифесте вызывающего кода она прямо не указывается.
На первый взгляд значимость позднего связывания оценить нелегко. Действительно, если есть возможность выполнить "раннее связывание" с объектом (например, добавить ссылку на сборку и выделить память под экземпляр типа с помощью ключевого слова
newActivatorКласс System.Activato
Класс
System.ActivatorActivator.Createlnstance()CreateInstance()ТуреПохожие книги на "Язык программирования C#9 и платформа .NET5", Троелсен Эндрю
Троелсен Эндрю читать все книги автора по порядку
Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.