<分区>
什么是 C# System.Diagnostics.Conditional
等效于 #if (!DEBUG)
?
如果尚未在 DEBUG 模式下编译,我想加密控制台应用程序的 app.config 文件的一部分。这是这样实现的:
public static void Main(string[] args)
{
#if (!DEBUG)
ConfigEncryption.EncryptAppSettings();
#endif
//...
}
但不知何故,我更喜欢用条件属性装饰加密方法:
[Conditional("!DEBUG")]
internal static void EncryptAppSettings()
{
//...
}
然而,这让编译器感到难过:“System.Diagnostics.ConditionalAttribute”属性的参数必须是有效标识符...
否定条件参数的正确语法是什么?
编辑: 感谢@Gusdor,我使用了这个(我更喜欢让 Program.cs 文件没有 if/else 调试逻辑):
#if !DEBUG
#define ENCRYPT_CONFIG
#endif
[Conditional("ENCRYPT_CONFIG")]
internal static void EncryptAppSettings()
{
//...
}