我很惊讶地看到,使用x.GetType().GetProperty("Foo")
获得的对象的实际类型不是System.Reflection.PropertyInfo
,而是System.Reflection.RuntimePropertyInfo
。什么是System.Reflection.RuntimePropertyInfo,我该如何比较它?
我没有在msdn或其他地方看到这种类型的文档。
我的实际问题是从参考文献比较两个属性。我从第三方库中收到一个属性,并将其与我在.GetProperty("Foo")
上获得的属性进行比较。我期望属性是相同的对象(并且它们在调试时看起来像“本地”窗口中的相同属性),但它们不是(GetHashCode
结果不同)。所以,我认为它可以以某种方式与属性对象的实际类型System.Reflection.RuntimePropertyInfo
相关。
什么是System.Reflection.RuntimePropertyInfo
?如何比较它?它的行为与往常一样PropertyInfo
?
对于你的实际问题(属性不匹配),我建议首先提出[MCVE],并比看看你是否还不明白 - 比问一个新问题(因为这是关于RuntimePropertyInfo) –
@AlexeiLevenkov隔离问题帮助了我和这里我问了下一个问题:http://stackoverflow.com/questions/36799386/how-to-compare-same-propertyinfo-with-different-reflectedtype-values – astef