gpt4 book ai didi

c# - 从 Attribute 走到 CustomAttributeData 或向后

转载 作者:太空狗 更新时间:2023-10-29 21:56:56 24 4
gpt4 key购买 nike

问题。有没有办法根据我的自定义属性的给定实例(比如 MyAttribute)获取 CustomAttributeData 的实例?还是相反?

我为什么需要这个? 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));

关于c# - 从 Attribute 走到 CustomAttributeData 或向后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35158061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com