Expression exp1 = new EqualsExpression(SearchContentProperty.Language, 1033);
我需要在反思中这样做,你能帮我吗
public class SearchContentProperty
{
public static IntegerPropertyExpression Language { get; }
}
在Reflection中,我可以获取属性,但它的基类型是System.Reflection.MethodInfo
。
由于这个原因,我无法将此属性用于另一个类的参数。
它引发了一个例外:
System.Reflection.MethodInfo
无法转换为MyClass Type
。 显式转换也是不可能的。
答案 0 :(得分:4)
假设您所指的是Language
的班级成员......那将不是MethodInfo
,而是PropertyInfo
。如果不是这样,那么您的代码就没有证明问题。
PropertyInfo
会公开GetValue
method,这会获得作为对象的价值。要提供给另一个类的MethodInfo
,只需将其插入object[]
that will be representing arguments的正确序号。
您无法直接将PropertyInfo
传递给MethodInfo
,PropertyInfo
不是属性值的替换,它会为您提供访问权限到属性值。
更新:我讨厌发生这种情况。我已经回答了第一个问题,但现在问题已经改变,让我的回答看起来完全不合适......