gpt4 book ai didi

c# - 确保目标继承自定义属性的一些接口(interface)

转载 作者:太空宇宙 更新时间:2023-11-03 14:08:01 25 4
gpt4 key购买 nike

我需要创建一些自定义属性,用于我的反射函数。

这是我所看到的用例:

  • 用户创建了一些类并用我的特殊属性标记它(例如[ImportantAttribute])
  • 然后用户使用我的库中的函数做一些事情。这些函数找到具有 [ImportantAttribute] 的类并用它们做一些事情

主要问题是我的库中的函数期望那些标有[ImportantAttribute] 的类继承我的接口(interface)(例如IMyInterface)

有什么方法可以让用户知道他是否用[ImportantAttribute] 标记了他的类并且忘记在编译期间继承IMyInterface,而不是在运行时。指定此属性仅适用于继承 IMyInterface 的类的一些方法。

与属性和字段的特性相同。

最佳答案

Is there any way to let user know if he mark his class with [ImportantAttribute] and forget to inherit IMyInterface during compilation, not in run time

简单的回答:,这是不可能的。不是在编译时。您可以使用反射在运行时检查这一点。

在编译时你可以对属性做的最好的事情(除了一些特殊的系统属性,例如 Obsolete 但它们直接合并到编译器中)是用 [AttributeUsage] 指定它们的用法。属性。

关于c# - 确保目标继承自定义属性的一些接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8781649/

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