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:
- Zestaw .NET Core 2.1 SDK lub nowszy.
- Twój ulubiony edytor kodu.
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>