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

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

На нашем литературном портале можно бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю, Троелсен Эндрю . Жанр: Базы данных. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале litmir.org.
Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Название: Язык программирования C#9 и платформа .NET5
Дата добавления: 22 август 2024
Количество просмотров: 245
Читать онлайн

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту readbookfedya@gmail.com для удаления материала

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

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

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле.

Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных.

Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

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

Дополнительной сложностью при работе с взаимодействием с СОМ и .NET 5 является отсутствие поддержки на этапе компиляции и во время выполнения. Версия MSBuild в .NET 5 не способна распознавать библиотеки взаимодействия, поэтому проекты .NET Core, в которых задействовано взаимодействие с СОМ, не могут компилироваться с применением интерфейса командной строки .NET Core. Они должны компилироваться с использованием Visual Studio, и скомпилированный исполняющий файл можно будет запускать вполне ожидаемым способом.

Взаимодействие с СОМ с использованием динамических данных C#

Чтобы продемонстрировать, каким образом необязательные аргументы, именованные аргументы и ключевое слово dynamic совместно способствуют упрощению взаимодействия с СОМ, будет построено приложение, в котором применяется объектная модель Microsoft Office. Добавьте новый файл класса по имени Car.cs, содержащий такой код:

namespace ExportDataToOfficeApp

{

  public class Car

  {

    public string Make { get; set; }

    public string Color { get; set; }

    public string PetName { get; set; }

  }

}

Поместите в начало файла Program.cs следующие операторы using:

using System;

using System.Collections.Generic;

using System.Reflection;

using Excel = Microsoft.Office.Interop.Excel;

using ExportDataToOfficeApp;

Обратите внимание на псевдоним Excel для пространства имен Microsoft.Office.Interop.Excel. Хотя при взаимодействии с библиотеками СОМ псевдоним определять не обязательно, это обеспечивает наличие более короткого квалификатора для всех импортированных объектов СОМ. Он не только снижает объем набираемого кода, но также разрешает проблемы, когда объекты СОМ имеют имена, конфликтующие с именами типов .NET Core.

Далее создайте список записей Car в операторах верхнего уровня внутри файла Program.cs:

// Создать псевдоним для объектной модели Excel.

using Excel = Microsoft.Office.Interop.Excel;

Next, create a list of Car records in the top-level statements in Program.cs:

List<Car> carsInStock = new List<Car>

{

  new Car {Color="Green", Make="VW", PetName="Mary"},

  new Car {Color="Red", Make="Saab", PetName="Mel"},

  new Car {Color="Black", Make="Ford", PetName="Hank"},

  new Car {Color="Yellow", Make="BMW", PetName="Davie"}

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

}

Поскольку вы импортировали библиотеку СОМ с использованием Visual Studio, сборка PIA автоматически сконфигурирована так, что используемые метаданные будут встраиваться в приложение .NET Core. Таким образом, все типы данных Variant из СОМ реализуются как типы данных dynamic. Взгляните на показанную ниже реализацию метода ExportToExcel():

void ExportToExcel(List<Car> carsInStock)

{

<b>  // Загрузить Excel и затем создать новую пустую рабочую книгу.</b>

  Excel.Application excelApp = new Excel.Application();

  excelApp.Workbooks.Add();

<b>  // В этом примере используется единственный рабочий лист.</b>

  Excel._Worksheet workSheet = (Excel._Worksheet)excelApp.ActiveSheet;

<b>  // Установить заголовки столбцов в ячейках.</b>

  workSheet.Cells[1, &quot;A&quot;] = &quot;Make&quot;;

  workSheet.Cells[1, &quot;B&quot;] = &quot;Color&quot;;

  workSheet.Cells[1, &quot;C&quot;] = &quot;Pet Name&quot;;

<b>  // Сопоставить все данные из List&lt;Car&gt; с ячейками электронной таблицы.</b>

  int row = 1;

  foreach (Car c in carsInStock)

  {

    row++;

    workSheet.Cells[row, &quot;A&quot;] = c.Make;

    workSheet.Cells[row, &quot;B&quot;] = c.Color;

    workSheet.Cells[row, &quot;C&quot;] = c.PetName;

  }

<b>  // Придать симпатичный вид табличным данным.</b>

  workSheet.Range[&quot;A1&quot;].AutoFormat

      (Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic2);

<b>  // Сохранить файл, завершить работу Excel и отобразить сообщение пользователю.</b>

  workSheet.SaveAs($@&quot;{Environment.CurrentDirectory}Inventory.xlsx&quot;);

   excelApp.Quit();

  Console.WriteLine(&quot;The Inventory.xslx file has been saved to your app folder&quot;);

                  // Файл Inventory.xslx сохранен в папке приложения.

}

Метод ExportToExcel() начинается с загрузки приложения Excel в память; однако на рабочем столе оно не отобразится. В данном приложении нас интересует только работа с внутренней объектной моделью Excel. Тем не менее, если необходимо отобразить пользовательский интерфейс Excel, тогда метод понадобится дополнить следующим кодом:

Перейти на страницу:
Комментариев (0)