Использование генератора XML-сериализатора Майкрософт в .NET Core
Это руководство описывает использование генератора XML-сериализатора Майкрософт в приложении .NET Core на языке C#. В ходе работы с этим руководством вы:
- как создать приложение .NET Core;
- Добавление ссылки на пакет Microsoft.XmlSerializer.Generator
- Редактирование MyApp.csproj для добавления зависимостей
- Добавление класса как XmlSerializer
- как собрать и запустить приложение.
Являясь аналогом генератора XML-сериализатора (sgen.exe) для .NET Framework, пакет NuGet Microsoft.XmlSerializer.Generator предназначен для проектов .NET Core и .NET Standard. Он создает сборку сериализации XML для содержащихся в сборке типов, улучшая производительность при запуске сериализации или десериализации XML для объектов этих типов с помощью XmlSerializer.
Предварительные требования
Для работы с этим руководством вам понадобится следующее:
- пакет SDK для .NET Core 2.1 или более поздней версии;
- любой редактор кода.
Совет
Нужно ли устанавливать редактор кода? Попробуйте использовать Visual Studio.
Использование генератора XML-сериализатора Майкрософт в консольном приложении .NET Core
Приведенные ниже инструкции описывают, как использовать генератор XML-сериализатора Майкрософт в консольном приложении .NET Core.
Создание консольного приложения .NET Core
Откройте командную строку и создайте папку с именем MyApp. Перейдите в созданную папку и введите следующие команды:
dotnet new console
Добавление ссылки на пакет Microsoft.XmlSerializer.Generator в проекте MyApp
Используйте команду dotnet add package
, чтобы добавить ссылку в проект.
Тип:
dotnet add package Microsoft.XmlSerializer.Generator -v 1.0.0
Проверка изменений MyApp.csproj после добавления пакета
Для начала работы откройте текстовый редактор. Мы все еще работаем из каталога MyApp, где создали приложение.
Откройте MyApp.csproj в текстовом редакторе.
После запуска команды dotnet add package
в файл проекта MyApp.csproj добавляются следующие строки:
<ItemGroup>
<PackageReference Include="Microsoft.XmlSerializer.Generator" Version="1.0.0" />
</ItemGroup>
Добавление другого раздела ItemGroup для поддержки инструмента CLI для .NET
Добавьте следующие строки после рассмотренного нами раздела ItemGroup
:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.XmlSerializer.Generator" Version="1.0.0" />
</ItemGroup>
Добавление класса в приложении
Откройте Program.cs в текстовом редакторе. Добавьте в Program.cs класс MyClass.
public class MyClass
{
public int Value;
}
Создание XmlSerializer
для MyClass
Добавьте следующую строку внутрь Main, чтобы создать XmlSerializer
для MyClass:
var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyClass));
Построение и запуск приложения
Оставаясь в папке MyApp, запустите приложение с помощью dotnet run
. При этом оно автоматически загружает и использует предварительно созданные сериализаторы во время выполнения.
Введите следующую команду в окне консоли:
dotnet run
Примечание
dotnet run
вызывает dotnet build
для проверки того, выполнена ли сборка целевых объектов, а затем вызывает dotnet <assembly.dll>
для запуска целевого приложения.
Важно!
Описанные в этом руководстве команды и шаги для запуска приложения используются только во время разработки. Когда вы будете готовы развернуть приложение, можете ознакомиться с другими стратегиями развертывания для приложений .NET Core и командой dotnet publish
.
Если все пройдет успешно, в папке выходных данных создается сборка с именем MyApp.XmlSerializers.dll.
Поздравляем! Вы только что:
- создали приложение .NET Core;
- добавили ссылку на пакет Microsoft.XmlSerializer.Generator;
- изменили MyApp.csproj для добавления зависимостей;
- добавили класс и XmlSerializer;
- выполнили сборку и запуск приложения.
Дальнейшая настройка сборки XML-сериализации (необязательно)
Добавьте следующий XML-код в файл MyApp.csproj для дальнейшей настройки создания сборок:
<PropertyGroup>
<SGenReferences>C:\myfolder\abc.dll;C:\myfolder\def.dll</SGenReferences>
<SGenTypes>MyApp.MyClass;MyApp.MyClass1</SGenTypes>
<SGenProxyTypes>false</SGenProxyTypes>
<SGenVerbose>true</SGenVerbose>
<SGenKeyFile>mykey.snk</SGenKeyFile>
<SGenDelaySign>true</SGenDelaySign>
</PropertyGroup>
Связанные ресурсы
- Введение в сериализацию XML
- Сериализация с использованием XmlSerializer (C#)
- Практическое руководство. Serialize Using XmlSerializer (Visual Basic) (Сериализация с использованием XmlSerializer (Visual Basic))