gpt4 book ai didi

c# - 自定义属性是否可以在没有继承的情况下暗示其他属性?

转载 作者:行者123 更新时间:2023-11-30 12:37:21 25 4
gpt4 key购买 nike

我正在编写一些库代码,使用该代码的类需要指定两个属性(一个自定义属性和一个来自 .NET 的属性)。

记录此要求并将这两个属性复制并粘贴到使用我的库的每个类上有点麻烦,所以我认为让我的自定义属性只暗示另一个属性的存在可能会更好.但是,.NET 框架中的其他属性是密封的,所以我不能只继承它...

那么有没有办法做到这一点呢?我可以在运行时添加 .NET 属性吗?

谢谢。

最佳答案

虽然您可以在属性中使用继承,但它是 recommended you don't .

因为这只是一条性能规则,您不会违反正确性,但它可能会引起一些困惑,您必须花费大量精力来确保您不违反基本属性的语义。如果您尝试使用 AttributeUsage 标志扩展属性的可能位置,则可能会导致问题。相关属性的规则是 quite complex .

A method can have either of the two attributes applied, but not both. Any operation that has neither applied uses the attribute applied to the containing class. If the containing class does not have either attribute applied, the DataContractSerializer is used.

就他们而言,将其密封起来听起来像是一个明智的计划。此 API 在设计时并未考虑到此类扩展。

没有办法(缺少 AOP 样式的“代码注入(inject)”)在运行时向现有类添加属性。

关于c# - 自定义属性是否可以在没有继承的情况下暗示其他属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1300381/

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