2012-08-30 51 views
10

看着http://msdn.microsoft.com/en-us/library/dd287191(v=vs.110).aspx,似乎ConcurrentDictionary及其所有System.Collections.Concurrent名稱空間的朋友都可以在可移植類庫中使用。可移植類庫和.NET ConcurrentDictionary

但是,當我創建F#或C#可移植類庫時,即使我明確添加對mscorlib.dll的引用,編譯在使用ConcurrentDictionary時也會失敗。

爲什麼?

+0

代碼?編譯錯誤? – vcsjones

+0

據我所見,這個類在.NET 4可移植類庫中不可用,http://msdn.microsoft.com/en-us/library/dd287191(v=vs.100).aspx。難道你的目標是.NET 4而不是4.5? –

+1

@AndersGustafsson:當您創建一個** F#可移植類庫**時,除了定位** .NET 4.5 **之外,您別無選擇。 – Okay

回答

10

「便攜式」這個術語目前應該是鬆散的。當您創建類庫項目時,系統會提示您輸入要支持的目標。當您選擇「.NET Framework」和「.NET Windows應用商店應用」時,您將只能獲得ConcurrentDictionary。

選擇其他,整個名稱空間消失。

隨着時間的推移,這會變得更好,但我認爲,但Windows Phone 7,XBox和Silverlight現在落後了。

+1

你是對的,但我只能得到** C#Projects **的提示。通過停用除你告訴我的兩個以外的所有內容,我可以使用這個命名空間:)。 的** F#便攜式類庫**項目模板不提示我這些選項雖然:(。 – Okay

+2

我瑞普說,F#被進一步限制(沒有的Xbox或手機),並有固定的子集。其中包含的Silverlight所以這。一個沒有去那裏 –

+2

是的,不幸的是,F#只支持平臺的固定子集通過便攜; Silverlight的5,.NET框架4.5和Windows Store應用程序 –