什么时候Type.GetMember含糊不清?

时间:2015-11-06 05:43:54

标签: c# reflection

调用Type.GetMember(string name, MemberTypes type, BindingFlags bindingAttr)时,此信息何时不足以找到零个或一个成员,假设bindingAttrBindingFlags.Default(即无关紧要)。什么类型的成员需要通过其他属性单独消除歧义?

1 个答案:

答案 0 :(得分:2)

多个覆盖将返回多个结果:

 class X
 {
      public int GetX(){ return 1;}
      public int GetX(string s){ return 2;}
 }

var r =  typeof(X).GetMember("GetX", MemberTypes.Method, 
        BindingFlags.Instance|BindingFlags.Public); // 2 items

请注意,指定Default将始终返回0项 - 您至少需要InstanceStatic。见Type.GetMember

  

您必须指定BindingFlags.Instance或BindingFlags.Static才能获得返回。