2008-11-10 10 views
5

Ben adıyla bir örneğinin bir propery arar aşağıdaki kod satırı pasajı vardı:nasıl adı durumda görmezden gelerek bir özellik aramak için Net yansıma kullanırım?

var prop = Backend.GetType().GetProperty(fieldName); 

Şimdi fieldName davasını görmezden istiyorum, bu yüzden aşağıdaki çalıştı:

var prop = Backend.GetType().GetProperty(fieldName, BindingFlags.IgnoreCase); 

... Olmaz. Şimdi tam durum var alan adlarını bulamazsınız desteklemek.

Dolayısıyla ..... nasıl adı durumda görmezden gelerek bir özellik aramak için Net yansıma kullanırım? . Eğer herhangi bir bayraklar, halkı, örneğini belirtmez ve statik varsayılan olarak sağlandığında bunu belirterek ediyorsanız açıkça ben sadece önermek

using System; 
using System.Reflection; 

public class Test 
{ 
    private int foo; 

    public int Foo { get { return foo; } } 

    static void Main() 
    { 
     var prop = typeof(Test).GetProperty("foo", 
              BindingFlags.Public 
              | BindingFlags.Instance 
              | BindingFlags.IgnoreCase); 
     Console.WriteLine(prop); 
    } 
} 

(:

cevap

13

Siz de BindingFlags.Public | BindingFlags.Instance belirtmeniz gerekir Eğer ihtiyacın olduğunu biliyorum eğer, örneğin veya statik birini belirtin)

2

deneyin şöyle kapsamı BindingFlags ekleyerek.

var prop = Backend.GetType().GetProperty(fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase); 

Bu benim için çalışıyor.

İlgili konular