Kniga-Online.club
» » » » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Читать бесплатно Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

Исследование метаданных типов

Прежде чем приступить к созданию приложений, в которых задействована ваша специальная библиотека .NET Core, давайте займемся исследованием метаданных для типов внутри сборки CarLibrary.dll. Скажем, вот определение TypeDef для типа EnginestateEnum:

TypeDef #1 (02000002)

-------------------------------------------------------

 TypDefName: CarLibrary.EngineStateEnum

 Flags     : [Public] [AutoLayout] [Class] [Sealed] [AnsiClass]

 Extends   : [TypeRef] System.Enum

Field #1

-------------------------------------------------------

 Field Name: value__

 Flags     : [Public] [SpecialName] [RTSpecialName]

 CallCnvntn: [FIELD]

 Field type:  I4

Field #2

-------------------------------------------------------

 Field Name: EngineAlive

 Flags     : [Public] [Static] [Literal] [HasDefault]

 DefltValue: (I4) 0

 CallCnvntn: [FIELD]

 Field type:  ValueClass CarLibrary.EngineStateEnum

Field #3

-------------------------------------------------------

 Field Name: EngineDead

 Flags     : [Public] [Static] [Literal] [HasDefault]

 DefltValue: (I4) 1

 CallCnvntn: [FIELD]

 Field type:  ValueClass CarLibrary.EngineStateEnum

Как будет объясняться в следующей главе, метаданные сборки являются важным элементом платформы .NET Core и служат основой для многочисленных технологий (сериализация объектов, позднее связывание, расширяемые приложения и т.д.). В любом случае теперь, когда вы заглянули внутрь сборки CarLibrary.dll, можно приступать к построению клиентских приложений, в которых будут применяться типы из сборки.

Построение клиентского приложения C#

Поскольку все типы в CarLibrary были объявлены с ключевым словом public, другие приложения .NET Core имеют возможность пользоваться ими. Вспомните, что типы могут также определяться с применением ключевого слова internal языка C# (на самом деле это стандартный режим доступа в C# для классов). Внутренние типы могут использоваться только в сборке, где они определены. Внешние клиенты не могут ни видеть, ни создавать экземпляры типов, помеченных ключевым словом internal.

На заметку! Исключением из указанного правила является ситуация, когда сборка явно разрешает доступ другой сборке с помощью атрибута InternalsVisibleTo, который вскоре будет рассмотрен.

Чтобы воспользоваться функциональностью вашей библиотеки, создайте в том же решении, где находится CarLibrary, новый проект консольного приложения C# по имени CSharpCarClient. Вы можете добиться цели с применением Visual Studio (щелкнув правой кнопкой мыши на имени решения и выбрав в контекстном меню пункт AddNew Project (Добавить►Новый проект)) или командной строки (ниже показаны три команды, выполняемые по отдельности):

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

dotnet new console -lang c# -n CSharpCarClient -o .CSharpCarClient -f net5.0

dotnet add CSharpCarClient reference CarLibrary

dotnet sln .Chapter16_AppRojects.sln add .CSharpCarClient

Приведенные команды создают проект консольного приложения, добавляют к нему ссылку на проект CarLibrary и вставляют его в имеющееся решение.

На заметку! Команда add reference создает ссылку на проект, что удобно на этапе разработки, т.к. CSharpCarClient будет всегда использовать последнюю версию CarLibrary. Можно также ссылаться прямо на сборку. Прямые ссылки создаются за счет указания скомпилированной библиотеки классов.

Если решение все еще открыто в Visual Studio, тогда вы заметите, новый проект отобразится в окне Solution Explorer безо всякого вмешательства с вашей стороны.

Наконец, щелкните правой кнопкой мыши на имени CSharpCarClient в окне Solution Explorer и выберите в контекстном меню пункт Set as Startup Project (Установить как стартовый проект). Если вы не работаете в Visual Studio, то можете запустить новый проект, введя команду dotnet run в каталоге проекта.

На заметку! Для установки ссылки на проект в Visual Studio можно также щелкнуть правой кнопкой мыши на имени проекта CSharpCarClient в окне Solution Explorer, выбрать в контекстном меню пункт AddReference (Добавить►Ссылка) и указать CarLibrary в узле проекта.

Теперь вы можете строить клиентское приложение для использования внешних типов. Модифицируйте начальный файл кода С#, как показано ниже:

using System;

// Не забудьте импортировать пространство имен CarLibrary!

using CarLibrary;

Console.WriteLine("***** C# CarLibrary Client App *****");

// Создать объект SportsCar.

SportsCar viper = new SportsCar("Viper", 240, 40);

viper.TurboBoost();

// Создать объект MiniVan.

MiniVan mv = new MiniVan();

mv.TurboBoost();

Console.WriteLine("Done. Press any key to terminate");

// Готово. Нажмите любую клавишу для прекращения работы

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*