C#反射 - 基本类型错误

时间:2012-01-10 11:45:41

标签: c# reflection

Expression exp1 = new EqualsExpression(SearchContentProperty.Language, 1033);

我需要在反思中这样做,你能帮我吗

 public class SearchContentProperty
 { 
     public static IntegerPropertyExpression Language { get; }
 }

在Reflection中,我可以获取属性,但它的基类型是System.Reflection.MethodInfo

由于这个原因,我无法将此属性用于另一个类的参数。

它引发了一个例外:

  

System.Reflection.MethodInfo无法转换为MyClass Type。   显式转换也是不可能的。

1 个答案:

答案 0 :(得分:4)

假设您所指的是Language的班级成员......那将不是MethodInfo,而是PropertyInfo。如果不是这样,那么您的代码就没有证明问题。

PropertyInfo会公开GetValue method,这会获得作为对象的价值。要提供给另一个类的MethodInfo,只需将其插入object[] that will be representing arguments的正确序号。

您无法直接将PropertyInfo传递给MethodInfoPropertyInfo不是属性值的替换,它会为您提供访问权限到属性值。

更新:我讨厌发生这种情况。我已经回答了第一个问题,但现在问题已经改变,让我的回答看起来完全不合适......