【发布时间】:2014-10-11 05:44:28
【问题描述】:
什么是 C# System.Diagnostics.Conditional 等效于 #if (!DEBUG)?
如果控制台应用程序的 app.config 文件的一部分尚未在 DEBUG 模式下编译,我想对其进行加密。这是这样实现的:
public static void Main(string[] args)
{
#if (!DEBUG)
ConfigEncryption.EncryptAppSettings();
#endif
//...
}
但不知何故,我更喜欢用条件属性装饰 encrypt 方法:
[Conditional("!DEBUG")]
internal static void EncryptAppSettings()
{
//...
}
然而这让编译器很伤心:The argument to the 'System.Diagnostics.ConditionalAttribute' attribute must be a valid identifier...
否定条件参数的正确语法是什么?
编辑: 感谢@Gusdor,我使用了这个(我更喜欢让 Program.cs 文件没有 if/else 调试逻辑):
#if !DEBUG
#define ENCRYPT_CONFIG
#endif
[Conditional("ENCRYPT_CONFIG")]
internal static void EncryptAppSettings()
{
//...
}
【问题讨论】:
-
感谢您指出重复的人。我没能找到它。可悲的是,那里接受的答案是“无法完成”,而在这里我设法找到了解决方案。 :)
标签: c# conditional debug-symbols