代码之家  ›  专栏  ›  技术社区  ›  CD..

查找具有反射的私有接口字段?

  •  1
  • CD..  · 技术社区  · 15 年前

    给了这个班

    public partial class Default : Page
    {
        private IRepository repo;
        ...
    }
    

    我想找个私人的 repo 字段。有可能吗?

    更新

    我试着用 GetFields(BindingFlags.NonPublic) 它回来了 {System.Reflection.FieldInfo[0]} .

    更新二

    我试着用 GetFields(BindingFlags.NonPublic | BindingFlags.Instance) ,它返回 Page 但不是 回购协议 .

    2 回复  |  直到 13 年前
        1
  •  3
  •   Tim Cooper    13 年前

    使用 GetFields 允许您指定标志的重载:

    GetFields(BindingFlags.NonPublic | BindingFields.Instance)
    
        2
  •  0
  •   user212124    15 年前

    您可以使用以下代码:

    memberinfo[]mi=system.runtime.serialization.formatterServices.getSerializableMembers(myType);

    并转换fieldinfo fi=(fieldinfo)mi[i]; 此代码返回可序列化成员(privates)