我有一个当前定义的自定义属性:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)]
public class MyAttribute : Attribute {}
我现在想要废弃接口上的用法 - 只留下Class使用。我宁愿不删除这种用法 - 因为我想为接口上的任何现有用法生成警告/建议。有没有办法做到这一点?
答案 0 :(得分:0)
不幸的是你做不到。你有两个我能想到的选择:
删除对Interface
的引用,并可能破坏使用它的任何代码。
[AttributeUsage(AttributeTargets.Class)]
public class MyAttribute : Attribute {}
创建属性的v2版本并使原始属性完全废弃
[Obsolete("Use MyNewAttribute instead")]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)]
public class MyAttribute : Attribute {}
[AttributeUsage(AttributeTargets.Class)]
public class MyNewAttribute : Attribute {}