2013-05-31 52 views
1

我有這個非常簡單的測試,因爲完整版本不工作;C#反射代碼不起作用;

public class dfd 
{ 
    public string g { get; set; } 
} 

然後;

 Type myType = typeof(dfd); 
     FieldInfo[] b = myType.GetFields(BindingFlags.Public); 

當我看b時,沒有字段信息。

{System.Reflection.FieldInfo[0]} 

任何想法?

回答

7

你有一個自動公開屬性,它定義了一個私人字段。如果您要求非公開字段,您將獲得該屬性的後臺字段。

順便說一句,你需要同時要求BindingFlags.NonPublic | BindingFlags.Instance,否則你不會檢索該字段。

+0

是的,我只是意識到,當你打字我想。 :) – griegs

+4

改爲使用PropertyInfo。似乎更有意義。 – griegs