CodeBlanks Logo Icon CodeBlanks

Özet - Serileştirme

C# kursu · Orta seviye · Ders 111/116

Serialize, Deserialize ve options'ı birleştirerek bir ayar dosyası yazarsın.

Özet - Serileştirme

Bu grupta serileştirmeyi öğrendin: JsonSerializer.Serialize nesneyi metne çevirir, Deserialize<T> metni nesneye, [JsonPropertyName] anahtar adını özelleştirir, JsonSerializerOptions biçimi düzenler, List<T> dizi olarak serileştirilir.

Son derste bir ayar dosyası akışı yazacaksın: nesneyi metne çevir, dosyaya kaydet, geri oku ve nesneye çevir. Bu, gerçek uygulamalarda veri saklamanın temelidir.

Uygulama Ayar kaydet ve yükle

Aşağıda Settings sınıfı hazırdır. Main içinde: (1) bir Settings örneği oluştur (Theme = "Koyu", Volume = 80); (2) JsonSerializer.Serialize ile metne çevir; (3) File.WriteAllText("ayarlar.txt", text) ile kaydet; (4) File.ReadAllText("ayarlar.txt") ile geri oku; (5) JsonSerializer.Deserialize<Settings> ile nesneye çevir; (6) Console.WriteLine ile loaded.Theme'i yazdır.

Örnek çözümü göster
var s = new Settings { Theme = "Koyu", Volume = 80 }; string text = JsonSerializer.Serialize(s); File.WriteAllText("ayarlar.txt", text); string loaded = File.ReadAllText("ayarlar.txt"); var settings = JsonSerializer.Deserialize<Settings>(loaded); Console.WriteLine(settings.Theme);
Örnek çözüm:
using System;
using System.IO;
using System.Text.Json;

class Settings
{
    public string Theme { get; set; }
    public int Volume { get; set; }
}

class Program
{
    static void Main()
    {
        var s = new Settings { Theme = "Koyu", Volume = 80 };
        string text = JsonSerializer.Serialize(s);
        File.WriteAllText("ayarlar.txt", text);
        string loaded = File.ReadAllText("ayarlar.txt");
        var settings = JsonSerializer.Deserialize<Settings>(loaded);
        Console.WriteLine(settings.Theme);
    }
}

Uygulama Listeyi kaydet ve geri yükle

people listesini JsonSerializer.Serialize ile metne çevir, File.WriteAllText ile kisiler.txt'ye kaydet. Sonra File.ReadAllText ile oku ve JsonSerializer.Deserialize<List<Person>> ile listeye çevir. Listenin ilk öğesinin adını Console.WriteLine ile yazdır.

Örnek çözümü göster
string text = JsonSerializer.Serialize(people); File.WriteAllText("kisiler.txt", text); string loaded = File.ReadAllText("kisiler.txt"); var list = JsonSerializer.Deserialize<List<Person>>(loaded); Console.WriteLine(list[0].Name);
Örnek çözüm:
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        var people = new List<Person>
        {
            new Person { Name = "Ayşe", Age = 30 },
            new Person { Name = "Mehmet", Age = 25 }
        };
        string text = JsonSerializer.Serialize(people);
        File.WriteAllText("kisiler.txt", text);
        string loaded = File.ReadAllText("kisiler.txt");
        var list = JsonSerializer.Deserialize<List<Person>>(loaded);
        Console.WriteLine(list[0].Name);
    }
}

Kendini test et

  1. Hangisi nesneyi metne çevirir?

    • Deserialize<T>
    • Serialize
    • JsonPropertyName
    • WriteIndented
    Cevabı göster

    JsonPropertyName — Doğru. Serialize nesneyi metne çevirir.

  2. Metodu amacına eşle

    Serialize
    Nesneden metne
    Deserialize<T>
    Metinden nesneye
    JsonPropertyName
    Anahtar adı
    JsonSerializerOptions
    Biçim ayarı

Orta seviye bölümündeki tüm dersler