我知道ConditionalAttribute
的作用。
文档说它也可以应用于类,如果它是从 Attribute
派生的:
[Conditional("DEBUG")]
public class FooAttribute : Attribute { }
但是该自定义属性的行为如何?(它是否从发布版本中删除了?)
最佳答案
@RicardoPontual 的评论给了我一个想法。
我这样做了:
[Conditional("DEBUG")]
public class FooAttribute : Attribute { }
[Foo]
public class Bar { }
我在 Debug模式下编译,并在ILSpy(它是一个反汇编器)中加载DLL。正如我所料,这是我发现的:
[Foo]
public class Bar { }
然后我在 Release模式下进行编译,并在 ILSpy 中加载该 DLL。这是我发现的:
public class Bar { }
这次没有修饰Bar
类!
所以,答案是,当您使用 Conditional
修饰某些自定义属性时,该属性本身就会以相同的方式成为有条件的。
这就是我想要的行为。我最初认为是从 ConditionalAttribute
派生的,但它是密封的。相反,您需要装饰您的自定义属性。
关于c# - 属性上的 ConditionalAttribute 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38982444/