Aracılığıyla paylaş


.NET Core'da Microsoft XML Seri Hale Getirici Oluşturucu kullanma

Bu öğreticide, C# .NET Core uygulamasında Microsoft XML Seri Hale Getirici Oluşturucu'ya nasıl kullanılacağı öğretildi. Bu öğretici sırasında şunları öğrenirsiniz:

  • .NET Core uygulaması oluşturma
  • Microsoft.XmlSerializer.Generator paketine başvuru ekleme
  • Bağımlılık eklemek için MyApp.csproj dosyanızı düzenleme
  • Sınıf ve XmlSerializer ekleme
  • Uygulamayı derleme ve çalıştırma

.NET Framework için Xml Seri Hale Getirici Oluşturucu (sgen.exe) gibi Microsoft.XmlSerializer.Generator NuGet paketi de .NET Core ve .NET Standard projelerinin eşdeğeridir. kullanarak XmlSerializerbu türlerdeki nesneleri seri hale getirme veya serileştirmeyi kaldırma sırasında XML serileştirmenin başlatma performansını geliştirmek için bir derlemede bulunan türler için bir XML serileştirme derlemesi oluşturur.

Önkoşullar

Bu öğreticiyi tamamlamak için:

İpucu

Kod düzenleyicisi yüklemeniz mi gerekiyor? Visual Studio'yu deneyin!

.NET Core konsol uygulamasında Microsoft XML Seri Hale Getirici Oluşturucu kullanma

Aşağıdaki yönergeler bir .NET Core konsol uygulamasında XML Seri Hale Getirici Oluşturucu'nu nasıl kullanacağınızı gösterir.

.NET Core konsol uygulaması oluşturma

Bir komut istemi açın ve MyApp adlı bir klasör oluşturun. Oluşturduğunuz klasöre gidin ve aşağıdaki komutu yazın:

dotnet new console

MyApp projesinde Microsoft.XmlSerializer.Generator paketine başvuru ekleme

dotnet add package Projenize başvuru eklemek için komutunu kullanın.

Şunu yazın:

dotnet add package Microsoft.XmlSerializer.Generator -v 1.0.0

Paketi ekledikten sonra MyApp.csproj dosyasındaki değişiklikleri doğrulama

Kod düzenleyicinizi açın ve başlayalım! Uygulamayı oluşturduğumuz MyApp dizininden çalışmaya devam ediyoruz.

Metin düzenleyicinizde MyApp.csproj dosyasını açın.

Komutu çalıştırdıktan dotnet add package sonra MyApp.csproj proje dosyanıza aşağıdaki satırlar eklenir:

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

.NET CLI Aracı desteği için başka bir ItemGroup bölümü ekleme

İncelediğimiz bölümden ItemGroup sonra aşağıdaki satırları ekleyin:

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

Uygulamaya sınıf ekleme

Metin düzenleyicinizde Program.cs dosyasını açın. Program.cs dosyasına MyClass adlı sınıfı ekleyin.

public class MyClass
{
   public int Value;
}

MyClass için oluşturma XmlSerializer

MyClass için oluşturmak XmlSerializer üzere Main içine aşağıdaki satırı ekleyin:

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

Uygulamayı derleme ve çalıştırma

Yine MyApp klasörünün içinde uygulamayı aracılığıyla dotnet run çalıştırın; uygulama otomatik olarak yüklenir ve çalışma zamanında önceden oluşturulmuş seri hale getiricileri kullanır.

Konsol pencerenize aşağıdaki komutu yazın:

dotnet run

Not

dotnet run derleme hedeflerinin oluşturulduğundan emin olmak için çağrı dotnet build yapar ve ardından hedef uygulamayı çalıştırmak için çağrı dotnet <assembly.dll> yapar.

Önemli

Uygulamanızı çalıştırmak için bu öğreticide gösterilen komutlar ve adımlar yalnızca geliştirme sırasında kullanılır. Uygulamanızı dağıtmaya hazır olduğunuzda .NET Core uygulamaları için farklı dağıtım stratejilerine ve komutuna dotnet publish göz atın.

Her şey başarılı olursa, çıkış klasöründe MyApp.XmlSerializers.dll adlı bir derleme oluşturulur.

Tebrikler! Yalnızca:

  • Bir .NET Core uygulaması oluşturuldu.
  • Microsoft.XmlSerializer.Generator paketine bir başvuru eklendi.
  • Bağımlılık eklemek için MyApp.csproj dosyanızı düzenlediniz.
  • Bir sınıf ve bir XmlSerializer eklendi.
  • Uygulama derlenip çalıştırılan.

XML serileştirme derlemesi daha fazla özelleştirme (isteğe bağlı)

Derleme oluşturmayı daha da özelleştirmek için MyApp.csproj dosyanıza aşağıdaki XML'yi ekleyin:

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