2010-05-05 94 views
6

如何使用條件(「條件1」)屬性,其中「條件1」是一個環境變量。幫助說可以做,但沒有說明如何?C#使用條件()與環境變量

+0

我打算使用環境變量作爲編譯時間開關。 #如果(環境變量存在) {// 東西 } – Kaya 2010-05-05 14:28:50

回答

0

除了創建envionment變量(例如值爲1)之外,您不需要做任何事情,然後在ConditionalAttribute中通過名稱引用它。需要在可通過系統屬性對話框的高級選項卡訪問的「環境變量」對話框中創建可變的;即不能只打開命令提示符並在其中設置變量,因爲該值只會在該提示符下存在,並在提示符關閉時丟失。

5

我相信這是你在找什麼http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx

詞「環境變量」,是指VS環境,而不是操作系統或任何其他。您可以簡單地使用DEBUG或任何自定義變量來標記您的類或方法;然後,這些類和方法在編譯時仍然存在,但是當生成IL代碼時,它們會被忽略 - 如果該變量未被定義(如示例所示)。

希望這會有所幫助。

的Pz, 的TaskConnect開發商

+0

您可以在屬性編輯器,爲您的項目添加額外的編譯符號(雙擊該項目的屬性點),然後引用那些ConditionalAttribute – Will 2010-05-05 14:22:41

3

不知道什麼Conditional(string condition),但你可以使用Environment.ExpandEnvironmentVariables獲取環境變量。


如果您在談論ConditionalAttribute,那麼您運氣不好。該屬性在COMPILE TIME,開發機器上(或構建服務器上)進行評估。它在RUNTIME中沒有任何作用,您可能想根據用戶的機器狀態(如環境變量所示)執行不同的操作。

您可以使用之前提到的Environment類的方法來確定在方法體內是否應該繼續執行。這可能是你最好的選擇。

+0

是COMPILE內TIME是我之後的事情。 – Kaya 2010-05-05 14:29:36

+0

真棒@kaya。我喜歡編譯時間。你可以在項目屬性中設置環境變量,它應該做你需要的東西(除非你試圖在不同的機器上做不同的事情)。 – Will 2010-05-05 14:31:48