.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:
- .NET Core 2.1 SDK veya üzeri.
- En sevdiğiniz kod düzenleyicisi.
İ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>