GetFields返回空数组

本文关键字:数组 返回 GetFields | 更新日期: 2023-09-27 18:05:37

有人能看到我下面做错了什么吗?类型具有服务方法试图访问的公共属性,那么为什么它没有被反射拾取?

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

欢呼斯图尔特

GetFields返回空数组

SomeProperty顾名思义是一个属性。用GetPropertyGetProperties代替!这导致PropertyInfo而不是FieldInfo