«reflection» etiketlenmiş sorular

Yansıma, bir programın çalışma zamanında yapısını ve / veya davranışını gözlemleme ve / veya değiştirme yeteneğidir. Yansıma, destekleyici programlama diline bağlıdır - lütfen bu etiketi kullanırken kullanılan programlama dilini etiketleyin.


13
.NET yansıması ne kadar maliyetlidir?
Yansımanın ne kadar kötü kullanıldığını sürekli duyuyorum. Genel olarak düşünmekten kaçınır ve nadiren sorunumu çözmenin imkansız olduğu durumları bulsam da, merak ediyordum ... Uygulamalarda yansımayı kullananlar için performans isabetlerini ölçtünüz mü ve gerçekten çok mu kötü?

6
Belirli bir özniteliğe sahip özelliklerin listesi nasıl alınır?
Bir tür tvar ve özniteliğe sahip ortak özelliklerin bir listesini almak istiyorum MyAttribute. Özellik şu şekilde işaretlenir AllowMultiple = false: [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] Şu anda sahip olduğum şey bu, ama daha iyi bir yol olduğunu düşünüyorum: foreach (PropertyInfo prop in t.GetProperties()) { object[] attributes = prop.GetCustomAttributes(typeof(MyAttribute), true); if (attributes.Length …
210 c#  .net  reflection 

13
Özelliğin adını dize olarak alma
(Kabul ettiğim yanıtı kullanarak oluşturduğum aşağıdaki çözüme bakın) Yansıma içeren bazı kodların sürdürülebilirliğini artırmak için çalışıyorum. Uygulama, yayınlanan uzak arabiriminde bulunmayan uygulama bölümlerine erişmek için Execute adlı bir yöntemi (diğer şeylerin yanı sıra) ortaya çıkaran bir .NET Remoting arabirimine sahiptir. Uygulamanın Execute aracılığıyla erişilebilir olması gereken özellikleri (bu örnekte statik …

14
Şu anda yürütülen yöntemin adını bulmak için yansıma kullanabilir misiniz?
Başlığın dediği gibi: Yansıma, şu anda yürütülen yöntemin adını verebilir mi? Heisenberg sorunu yüzünden tahmin etmemeye eğilimliyim. Mevcut yöntemin ne olduğunu değiştirmeden mevcut yöntemi anlatacak bir yöntemi nasıl çağırırsınız? Ama umarım birisi beni yanlış anlayabilir. Güncelleme: Bölüm 2: Bu, bir özellik kodunun içine bakmak için de kullanılabilir mi? Bölüm 3: …
204 .net  reflection 



9
Yansıma: Yöntemle Parametreleri Çağırma
Parametreleri ile yansıma yoluyla bir yöntemi çağırmaya çalışıyorum ve elde: nesne hedef türüyle eşleşmiyor Parametresiz bir yöntem çağırırsam iyi çalışır. Yöntemi çağırırsanız aşağıdaki kod dayanarak Test("TestNoParameters"), iyi çalışıyor. Ancak Test("Run")ararsam bir istisna alırım. Kodumda bir sorun mu var? Benim ilk amacım nesnelerin bir dizi geçmek oldu public void Run(object[] options)ama …

7
Sınıf Nesnesinin Java'daki başka bir Sınıf Nesnesinin alt sınıfı olup olmadığını kontrol edin
Java'nın yansıma API'sı ile oynuyorum ve bazı alanları ele almaya çalışıyorum. Şimdi tarlalarımın türünü tanımlamakta kaldım. Teller kolaydır, sadece yapın myField.getType().equals(String.class). Aynısı türetilmemiş diğer sınıflar için de geçerlidir. Fakat türetilmiş sınıfları nasıl kontrol ederim? Örneğin LinkedList, alt sınıfı olarak List. Herhangi bir yöntem isSubclassOf(...)veya extends(...)yöntem bulamıyorum . getSuperClass()Herkesin içinden geçip …
197 java  class  reflection 

4
Java yansımasında getFields ve getDeclaredFields arasındaki fark nedir
Java yansıması kullanırken getFieldsyöntem ve yöntem arasındaki fark hakkında biraz kafam karıştı getDeclaredFields. getDeclaredFieldsSınıfın tüm alanlarına erişmenizi sağlayan ve getFieldsyalnızca ortak alanları döndüren okudum . Eğer durum buysa, neden her zaman kullanmıyorsunuz getDeclaredFields? Birisi lütfen bunu ayrıntılı olarak açıklayabilir ve iki yöntem arasındaki farkı ve ne zaman / neden birini …
195 java  reflection 

2
Neden bir türün başlatıcısı bulmak bir NullReferenceException oluşturur?
Bu beni çok üzdü. Bazı tip başlatıcı kontrolümüz olan Noda Time için bazı testleri optimize etmeye çalışıyordum. Ben bir tür olup olmadığını öğrenmek düşündüm sahiptir yeni yüklenirken her şeyi önce başlatıcı türü (statik yapıcısı veya başlatıcıları ile statik değişkenler) AppDomain. Sürpriz olarak, bu küçük testi attı NullReferenceException- hiçbir boş değerler …

5
Montaj adını alma
C # özel durum sınıfı, varsayılan olarak derleme adına ayarlanmış bir kaynak özelliğine sahiptir. Bu dizeyi almanın başka bir yolu var mı (farklı bir dizeyi ayrıştırmadan)? Aşağıdakileri denedim: catch(Exception e) { string str = e.Source; //"EPA" - what I want str = System.Reflection.Assembly.GetExecutingAssembly().FullName; //"EPA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" str = typeof(Program).FullName; …




Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.