我知道ConditionalAttribute
做了什么。
文档说它也可以应用于类,如果它来自Attribute
:
[Conditional("DEBUG")]
public class FooAttribute : Attribute { }
但是该自定义属性的行为如何?(是否从发布版本中剥离了?)
答案 0 :(得分:2)
@ RicardoPontual的评论给了我一个想法。
我这样做了:
[Conditional("DEBUG")]
public class FooAttribute : Attribute { }
[Foo]
public class Bar { }
我在调试模式中编译,并在ILSpy中加载了DLL(它是一个反汇编程序)。这就是我发现的,正如预期的那样:
[Foo]
public class Bar { }
然后我在发布模式中编译,并在ILSpy中加载该DLL。这是我发现的:
public class Bar { }
这次没有装饰Bar
课程!
所以,答案是当你用Conditional
装饰一些自定义属性时,那个属性本身就会以同样的方式变为条件。
这就是我想要的行为。我最初认为是从ConditionalAttribute
派生出来的,但它是封闭的。相反,您需要装饰自定义属性。