GetFields返回空数组

时间:2013-03-24 12:53:56

标签: c# reflection

任何人都可以在下面看到我做错了吗?该类型具有服务方法试图访问的公共属性,为什么它不被反射拾取?

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
    }
}

干杯

斯图尔特

1 个答案:

答案 0 :(得分:9)

SomeProperty - 顾名思义 - 是一个属性。请改用GetPropertyGetProperties!这会导致PropertyInfo而不是FieldInfo