Toplanabilir Dinamik Assembly’ler

   Hatırlayacak olursanız bir süre önce size çalışma-zamanı nasıl dinamik kod oluşturabileceğinizden bahsetmiştim. Geliştirdiğimiz örnek kod üzerinden ekrana “Merhaba Dinamik Dünya” yazan bir konsol uygulaması oluşturarak diske kaydetmiş, ardından da uygulamamız üzerinden oluşan kodu nasıl kullanabileceğimizi görmüştük. Makalemde basit bir uygulama ile örneklemeye çalıştığım reflection  emit çok güçlü; ama dikkatli kullanılmadığında da bir o kadar...
Okumaya devam...

Öznitelikler ve Reflection’la C# Dilini İhtiyaçlarınız Doğrultusunda Genişletin -2

   Bir önceki makalemde sizlere öznitelik (attribute) ve yansıma (reflection) konularında bahsetmiştim. Her zaman dediğim gibi, bu ikili bir arada gerçekten çok önemli bir güç haline gelmekte. Bu ikilinin kullanımına dair o kadar fazla şey söylenebilir ki, tek makale buna hiç bir zaman yetmeyecektir. Bu sebeple ikinci bir makale ile konuyu biraz daha derinleştirmek istedim....
Okumaya devam...

Öznitelik’ler ve Reflection’la C# Dilini İhtiyaçlarınız Doğrultusunda Genişletin

   C# anlatırken ne zaman konu özniteliklere (attributes) gelse, bu konuyu ilk dinleyenler için konu hep havada kalır. “Kodunuzun içerisine ekleyebileceğim meta veriler mi!?”, “Bu meta veriler ne işime yarayacak ki?” Bu sorulara verdiğim yanıt ise biraz daha sabırlı olmaları ve hemen ardından anlattığım reflection konusunu dinlemeleri oluyor.    Öznitelikler ve Reflection bir araya geldiğinde...
Okumaya devam...

Çalışma-Zamanı Dinamik Kod Oluşturma

Yazılım geliştiriciler olarak her zaman kullanıcıların ihtiyaçlarını karşılamak için derleme-zamanı yazmış olduğumuz kodları kullanırız; ama zaman zaman keşke kendi kendini yazan, çalıştıran programlarımız olsun dediğiniz olmuştur. İşte tam bu düşüncede olan tüm yazılım geliştiricilerin en seveceği C# namespace’i sanırım System.Reflection.Emit olacaktır. Bu makalemde sizlere bu namespace altında yer alan sınıflar yardımıyla çalışma-zamanında nasıl dinamik olarak...
Okumaya devam...

Reflection ve Dinamik Assembly’ler

   Yazdığım bir uygulamada; uygulamada yüklü assembly’lerin listesini alarak bunlar içerisinde belirli bir attribute’a sahip olanlar üzerinde işlem yapmak istiyordum. Bunun içinde assembly’lerin listesini aldıktan sonra aşağıdaki kodu yazmıştım :     Fakat bu kodu çalıştırdığım zaman System.NotSupportedException hatasını alıyordum. Biraz araştırmanın ardından bunun sebebinin kullandığım 3. parti kütüphanelerden birinin dinamik olarak bir assembly oluşturarak bunu...
Okumaya devam...