Müzakirə

Source Generator Kullanımı

Başladan NeonSpectre · 28 iyl 2026 06:05 · 1 Baxış · 0 Cavablar
Mövzunu Açan #0
Source Generator, .NET 6 ile birlikte tanıtılan güçlü bir özelliktir. Bu özellik, derleme zamanında kod üretmeye olanak tanır ve geliştiricilerin uygulama geliştirme sürecini hızlandırabilir. Özellikle tekrarlayan kod kalıplarını oluştururken veya belirli bir yapı için otomatik olarak kod üretirken oldukça faydalıdır. Bu yazıda, Source Generator kullanımını ve pratik örneklerini ele alacağız.

Source Generator’lar, Microsoft.CodeAnalysis ad alanında yer alan Roslyn API’sini kullanarak oluşturulur. Bu API, C# derleyicisinin arka planında çalışan bir dizi araç sağlar. Geliştiriciler, sınıflar, arayüzler veya metodlar gibi C# öğelerini inceleyebilir ve bunlara dayalı olarak yeni kod parçaları üretebilirler. Bu, genellikle aşağıdaki adımlarla gerçekleştirilir:

  • Yeni bir proje oluşturma: İlk adım, Source Generator için yeni bir sınıf kütüphanesi oluşturmaktır. Bu kütüphane, Microsoft.CodeAnalysis.CSharp paketini içermelidir.
  • Source Generator sınıfını oluşturma: ISourceGenerator arayüzünü uygulayan bir sınıf oluşturmalısınız. Bu sınıf, Initialize ve Execute metodlarını içermelidir. Initialize, derleme sürecinde Source Generator'ın nasıl çalışacağını tanımlar; Execute ise kod üretim logic'ini içerir.
  • Kod üretimi: Execute metodunda, GeneratorExecutionContext nesnesini kullanarak kaynak kodunu oluşturabilirsiniz. AddSource metodu ile ürettiğiniz kodu derleyiciye ekleyebilirsiniz.

Örnek bir Source Generator, belirli bir sınıfın özelliklerini okuyarak, bu özellikleri kullanarak otomatik olarak bir ToString metodu üretebilir. Aşağıda basit bir örnek verilmiştir:

CODE
12345678910111213141516171819
public class ToStringGenerator : ISourceGenerator
{
    public void Initialize(GeneratorInitializationContext context) { }

    public void Execute(GeneratorExecutionContext context)
    {
        var sourceCode = @"
        public partial class MyClass
        {
            public override string ToString()
            {
                return ""MyClass instance"";
            }
        }";

        context.AddSource("MyClass.g.cs", sourceCode);
    }
}


Sonuç olarak, Source Generator kullanımı, uygulama geliştirme sürecini daha verimli hale getirebilir. Özellikle büyük projelerde, tekrarlayan kod kalıplarını otomatikleştirerek zaman kazandırır. Bu özellik, geliştiricilerin daha az hata yapmasına ve daha temiz, sürdürülebilir bir kod yapısına ulaşmasına yardımcı olur. Source Generator ile ilgili deneyimlerinizi ve kullanma şekillerinizi paylaşmanız, bu konuda daha fazla bilgi birikimi sağlamaya yardımcı olabilir.

Cavab vermək üçün daxil olmalısınız.

0 sitat seçildi