2013-12-12 13 views
0

C# preprocessor directives可以在代碼文件中使用嗎?預處理指令是否可以在代碼文件之外使用?

我知道如何在代碼文件中使用它們,這裏是從MSDN的頁面的例子:

// preprocessor_if.cs 
#define DEBUG 
#define MYTEST 
using System; 
public class MyClass 
{ 
    static void Main() 
    { 
#if (DEBUG && !MYTEST) 
     Console.WriteLine("DEBUG is defined"); 
#elif (!DEBUG && MYTEST) 
     Console.WriteLine("MYTEST is defined"); 
#elif (DEBUG && MYTEST) 
     Console.WriteLine("DEBUG and MYTEST are defined"); 
#else 
     Console.WriteLine("DEBUG and MYTEST are not defined"); 
#endif 
    } 
} 

是否可以使用XML #if(或其他非代碼)的文件有不同調試和發佈的數據?例如:

<coustomXml> 
#if DEBUG 
    <item>debugdata</item> 
#else 
    <item>releaseData</item> 
#endif 
</coustomXml> 

我試過這與我的項目的app.config,但編譯器忽略標誌。

+0

如果您的XML處理器已經擴展了C#預處理,然後是。但是,因爲這不太可能,不。你可以編寫一個xslt變換來做到這一點。 – KevinDTimm

+0

我不使用xml處理器,xml文件是我的visual-studio項目的一部分。 – Turbofant

回答

相關問題