Udostępnij za pośrednictwem


Korzystanie z generatora serializatora XML firmy Microsoft na platformie .NET Core

W tym samouczku pokazano, jak używać generatora serializatora XML firmy Microsoft w aplikacji platformy .NET Core w języku C#. W trakcie tego samouczka nauczysz się:

  • Jak utworzyć aplikację .NET Core
  • Jak dodać odwołanie do pakietu Microsoft.XmlSerializer.Generator
  • Jak edytować plik MyApp.csproj, aby dodać zależności
  • Jak dodać klasę i obiekt XmlSerializer
  • Jak skompilować i uruchomić aplikację

Podobnie jak w przypadku generatora serializatora Xml (sgen.exe) dla .NET Framework pakiet NuGet Microsoft.XmlSerializer.Generator jest odpowiednikiem projektów .NET Core i .NET Standard. Tworzy zestaw serializacji XML dla typów zawartych w zestawie, aby poprawić wydajność uruchamiania serializacji XML podczas serializacji lub deseralizacji obiektów tych typów przy użyciu metody XmlSerializer.

Wymagania wstępne

W celu ukończenia tego samouczka:

Porada

Chcesz zainstalować edytor kodu? Wypróbuj program Visual Studio!

Używanie generatora serializatora XML firmy Microsoft w aplikacji konsolowej platformy .NET Core

Poniższe instrukcje pokazują, jak używać generatora serializatora XML w aplikacji konsolowej platformy .NET Core.

Tworzenie aplikacji konsolowej platformy .NET Core

Otwórz wiersz polecenia i utwórz folder o nazwie MyApp. Przejdź do utworzonego folderu i wpisz następujące polecenie:

dotnet new console

Dodawanie odwołania do pakietu Microsoft.XmlSerializer.Generator w projekcie MyApp

Użyj polecenia , dotnet add package aby dodać odwołanie do projektu.

Wpisz:

dotnet add package Microsoft.XmlSerializer.Generator -v 1.0.0

Sprawdź zmiany w pliku MyApp.csproj po dodaniu pakietu

Otwórz edytor kodu i zacznijmy! Nadal pracujemy z katalogu MyApp , w ramach których skompilowaliśmy aplikację.

Otwórz plik MyApp.csproj w edytorze tekstów.

Po uruchomieniu dotnet add package polecenia następujące wiersze są dodawane do pliku projektu MyApp.csproj :

<ItemGroup>
   <PackageReference Include="Microsoft.XmlSerializer.Generator" Version="1.0.0" />
</ItemGroup>

Dodawanie kolejnej sekcji ItemGroup dla obsługi narzędzia interfejsu wiersza polecenia platformy .NET

Dodaj następujące wiersze po ItemGroup zbadanej sekcji:

<ItemGroup>
   <DotNetCliToolReference Include="Microsoft.XmlSerializer.Generator" Version="1.0.0" />
</ItemGroup>

Dodawanie klasy w aplikacji

Otwórz plik Program.cs w edytorze tekstów. Dodaj klasę o nazwie MyClass w pliku Program.cs.

public class MyClass
{
   public int Value;
}

Tworzenie elementu XmlSerializer dla klasy MyClass

Dodaj następujący wiersz w obszarze Main , aby utworzyć element dla klasy XmlSerializer MyClass:

var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyClass));

Kompilowanie i uruchamianie aplikacji

Nadal w folderze MyApp uruchom aplikację za pomocą polecenia dotnet run i automatycznie ładuje i używa wstępnie wygenerowanych serializatorów w czasie wykonywania.

Wpisz następujące polecenie w oknie konsoli:

dotnet run

Uwaga

dotnet run wywołania dotnet build w celu upewnienia się, że obiekty docelowe kompilacji zostały skompilowane, a następnie wywołania dotnet <assembly.dll> w celu uruchomienia aplikacji docelowej.

Ważne

Polecenia i kroki przedstawione w tym samouczku służące do uruchamiania aplikacji są używane tylko w czasie programowania. Gdy wszystko będzie gotowe do wdrożenia aplikacji, zapoznaj się z różnymi strategiami wdrażania dla aplikacji platformy dotnet publish .NET Core i polecenia .

Jeśli wszystko powiedzie się, zestaw o nazwie MyApp.XmlSerializers.dll zostanie wygenerowany w folderze wyjściowym.

Gratulacje! Masz tylko:

  • Utworzono aplikację platformy .NET Core.
  • Dodano odwołanie do pakietu Microsoft.XmlSerializer.Generator.
  • Edytowano plik MyApp.csproj, aby dodać zależności.
  • Dodano klasę i xmlSerializer.
  • Skompiluj i uruchomiliśmy aplikację.

Dalsze dostosowywanie zestawu serializacji XML (opcjonalnie)

Dodaj następujący kod XML do pliku MyApp.csproj , aby jeszcze bardziej dostosować generowanie zestawów:

<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>