问题。有没有办法根据自定义属性的给定实例(例如CustomAttributeData
)获取MyAttribute
的实例?反之亦然?
为什么我需要这个? MyAttribute
的实例包含我感兴趣的属性,而CustomAttributeData
的实例包含我感兴趣的实际构造函数参数。所以现在我实现了双重工作: first ,通过调用
MyAttribute
的实例
Attribute.GetCustomAttribute(property, typeof(MyAttribute)) as MyAttribute
和 second ,通过调用
获取CustomAttributeData
的实例
CustomAttributeData.GetCustomAttributes(property)
走过这个系列。
P上。 S。我看过this question,但没有在那里找到所需的解决方案。
答案 0 :(得分:1)
如果我正确理解了您的问题,您已经拥有自定义属性MyAttributeInstance的实例,并且您希望获得同一实例的CustomAttributeData,最好是一步完成。
由于您已经找到MyAttributeInstance,并且附加到属性(或类或...),我将假设您拥有该属性。所以这可能可能为你工作:
CustomAttributeData CAD = property.GetCustomAttributesData().First(x => x.AttributeType == MyAttributeInstance.GetType());
我认为这可以回答你的实际问题。但是,我认为您的意图可能实际上已经问过如何直接从属性获取CustomAttributeData。在这种情况下试试这个:
CustomAttributeData CAD = property.GetCustomAttributesData().First(x => x.AttributeType == typeof(MyAttribute));