属性上的 ConditionalAttribute 有什么作用?
What does ConditionalAttribute on an Attribute do?
我知道 ConditionalAttribute
的作用。
文档说它也可以应用于 class,如果它来自 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
class这次没有装修!
所以,答案是,当您用 Conditional
修饰某些自定义属性时,该属性本身将以相同的方式成为条件。
这就是我想要的行为。我最初想从 ConditionalAttribute
派生,但它是密封的。相反,您需要装饰您的自定义属性。
我知道 ConditionalAttribute
的作用。
文档说它也可以应用于 class,如果它来自 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
class这次没有装修!
所以,答案是,当您用 Conditional
修饰某些自定义属性时,该属性本身将以相同的方式成为条件。
这就是我想要的行为。我最初想从 ConditionalAttribute
派生,但它是密封的。相反,您需要装饰您的自定义属性。