2013-03-24 7 views
0

Может ли кто-нибудь увидеть, что я делаю неправильно ниже? Тип имеет общедоступное свойство, к которому метод доступа пытается получить доступ, так почему он не подхвачен отражением?GetFields возвращает пустой массив

Public class SomeClass 
{ 
    private YetAnotherClass yetAnotherClass; 

    public SomeClass(SomeOtherClass otherclass) 
    { 
     this.yetAnotherClass = otherclass.SomeProperty; 
    } 

    public YetAnotherClass SomeProperty 
    { 
     get { return this.yetAnotherClass; } 
    } 
} 

Public class ServiceClass 
{ 
    public void DoSomething(SomeClass someclass) 
    { 
     Type type = someclass.GetType(); 
     FieldInfo[] fieldsinfo = type.GetFields(BindingFlags.Public | BindingFlags.Instance); // returns empty collection 
     FieldInfo fieldinfo = type.GetField("SomeProperty"); // returns null reference exception 
    } 
} 

Приветствия

Стюарт

+0

Не могли бы вы принять ответ, если он вам помог? Спасибо – Sebastian

ответ

7

SomeProperty является - как говорит название - это свойство. Используйте вместо этого GetProperty и GetProperties! Это приводит к PropertyInfo вместо FieldInfo.