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 :

foreach (System.Reflection.Assembly assembly in System.AppDomain.CurrentDomain.GetAssemblies()) {
    //Assembly ile ilgili analizi gerçekleştir
}

    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 mevcut domain’e eklemesi olduğunu anladım. Dinamik olarak oluşturulan bu assembly’leri anlamak için ise aşağıdaki kod işinizi görecektir :

if (assembly is System.Reflection.Emit.AssemblyBuilder) {
   continue;
}

Bu sayede elinizde bulunan assembly’nin dinamik olup olmadığını anlayarak analiz işlemini bu assembly için es geçebilirsiniz.

Şu Yazıları da Sevebilirsiniz

Leave a Comment

* Bu formu kullanarak, verilerinizin bu web sitesi tarafından saklanması ve kullanılmasını kabul ediyorsunuz.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bunu kabul ettiğinizi varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul Et Daha Fazla Bilgi