2013-12-13 58 views
0

我有一個在Portable Class Library中定義的類。在那個類中我有一個int,如果代碼在WP8上運行,我只想擁有[DataMember]屬性,如何實現?使用#if來確定代碼是否在WP8上運行

應該有使用#IF的方式,但我不知道語法和條件語句,像這樣(僞語法)的:

#if (condition for WP8) then 
include this line: [DataMember] 
public int TrackingId { get; set; } 

另外,我怎麼可能檢查其他環境比WP8?

+0

[條件編譯](http://stackoverflow.com/questions/20575969/removing-list-items-without屬性任何其他引用)在編譯時確定,而不是在運行時確定。 –

+0

,但是有沒有辦法在代碼在WP8上運行時以某種方式包含[DataMember]屬性? – neo112

+1

你需要在你的WP8項目中實現你的實現。 PCL在編譯時不知道環境 –

回答

-2

嘗試包裝你的[數據成員]與

#if WINDOWS_PHONE8 

#endif 

public class SomeContract 
{ 
#if WINDOWS_PHONE8 
    [DataContract] 
#endif 
    public string MyProperty { get; set; } 
} 
+0

,因爲我只包含了[DataMember]屬於if和then嘗試添加[數據成員] +屬性,如果只是財產其他但沒有工作要麼 – neo112

+0

你可以嘗試編輯版本? – Kralizek

+1

@ neo112爲什麼?因爲'#if WINDOWS_PHONE8'由編譯器處理。所以它根據該指令創建代碼。在運行時不可用。編譯器的輸出是WP8或不是,這取決於編譯時間條件。 –

相關問題