2012-08-30 12 views
10

Patrząc na http://msdn.microsoft.com/en-us/library/dd287191(v=vs.110).aspx, wydaje się, że ConcurrentDictionary i wszyscy jej znajomi w przestrzeni nazw System.Collections.Concurrent są dostępni do użycia w Portable Class Library.Przenośna biblioteka klas i .NET ConcurrentDictionary

Jednak po utworzeniu przenośnej biblioteki klas F # lub C#, nawet jeśli jawnie dodaję odniesienie do mscorlib.dll, kompilacja kończy się niepowodzeniem, gdy używana jest ConcurrentDictionary.

Dlaczego?

+0

Kod? Błąd kompilacji? – vcsjones

+0

O ile widzę, ta klasa nie jest dostępna w przenośnej bibliotece klas .NET 4, http://msdn.microsoft.com/en-us/library/dd287191(v=vs.100).aspx. Czy to możliwe, że celujesz w .NET 4 zamiast w 4.5? –

+1

@AndersGustafsson: podczas tworzenia ** Portable Class Library **, nie masz innego wyboru niż kierowanie ** NET 4.5 **. – Okay

Odpowiedz

10

Termin "przenośny" należy teraz stosować luźno. Po utworzeniu projektu biblioteki klas otrzymasz monit o cele, które chcesz obsłużyć. Dostaniesz ConcurrentDictionary tylko wtedy, gdy wybierzesz ".NET Framework" i ".NET dla aplikacji Windows Store".

Wybierz inny, a cała przestrzeń nazw znika.

Z czasem będzie lepiej, zakładam, ale Windows Phone 7, Xbox i Silverlight pozostają w tyle.

+1

Miałeś rację, ale otrzymuję tylko podpowiedź z ** C# Projects **. Dezaktywując wszystkie oprócz dwóch, które mi powiedziałeś, mogłem użyć tej przestrzeni nazw :). Szablon projektu ** F # Portable Class Library ** nie wyświetla mi tych opcji :(. – Okay

+2

Wymieniam to, F # jest dalej ograniczone (brak XBoxa lub telefonu) i ma stały podzbiór, co obejmuje Silverlight, więc to jest –

+2

Tak, niestety, F # obsługuje tylko stały podzbiór platform za pośrednictwem urządzeń przenośnych, aplikacje Silverlight 5, .NET Framework 4.5 i Windows Store. –

Powiązane problemy