我知道做什么ConditionalAttribute
。
文档说它也可以应用于一个类,如果它来自Attribute
:
[Conditional("DEBUG")]
public class FooAttribute : Attribute { }
但是该自定义属性的行为如何?(它是从发布版本中剥离出来的吗?)
我知道做什么ConditionalAttribute
。
文档说它也可以应用于一个类,如果它来自Attribute
:
[Conditional("DEBUG")]
public class FooAttribute : Attribute { }
但是该自定义属性的行为如何?(它是从发布版本中剥离出来的吗?)
@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
,但它是密封的。相反,您需要装饰您的自定义属性。