问题。 是否可以根据我的自定义属性的给定实例CustomAttributeData
来获取MyAttribute
实例?或相反亦然?
为什么需要这个? MyAttribute
实例包含我感兴趣的属性,而CustomAttributeData
实例包含我感兴趣的实际构造函数参数。因此,我现在实现了双重工作:首先,通过调用获得MyAttribute
实例
Attribute.GetCustomAttribute(property, typeof(MyAttribute)) as MyAttribute
,其次,通过调用获取
CustomAttributeData
的实例CustomAttributeData.GetCustomAttributes(property)
并浏览此收藏集。
P. S. 我看过this question,但没有在此处找到所需的解决方案。
最佳答案
如果我正确理解了您的问题,则您已经有一个自定义属性MyAttributeInstance的实例,并且您希望以同一步骤获取该相同实例的CustomAttributeData。
由于您已经找到MyAttributeInstance,并且已附加到属性(或类,或...),因此,我假定您具有可用的属性。因此,这可能对您有用:
CustomAttributeData CAD = property.GetCustomAttributesData().First(x => x.AttributeType == MyAttributeInstance.GetType());
我认为这回答了您的实际问题。但是,我认为您的意图可能是实际上询问如何直接从属性获取CustomAttributeData。在这种情况下,请尝试以下操作:
CustomAttributeData CAD = property.GetCustomAttributesData().First(x => x.AttributeType == typeof(MyAttribute));