2012-08-30 13 views
10

Al mirar http://msdn.microsoft.com/en-us/library/dd287191(v=vs.110).aspx, parece que ConcurrentDictionary y todos sus amigos en el espacio de nombres System.Collections.Concurrent están disponibles para su uso en una Biblioteca de clases portátil.Biblioteca de clases portátil y .NET ConcurrentDictionary

Sin embargo, cuando creo una Biblioteca de clase portátil F # o C#, incluso si agrego explícitamente una referencia a mscorlib.dll, la compilación falla al usar ConcurrentDictionary.

¿Por qué?

+0

¿Código? ¿Error de compilación? – vcsjones

+0

Por lo que puedo ver, esta clase no está disponible en .NET 4 Portable Class Library, http://msdn.microsoft.com/en-us/library/dd287191(v=vs.100).aspx. ¿Podría ser que esté apuntando a .NET 4 en lugar de a 4.5? –

+1

@AndersGustafsson: cuando crea una Biblioteca de clases portátil ** F #, no tiene otra opción que no sea la orientación ** .NET 4.5 **. – Okay

Respuesta

10

El término "portátil" se debe aplicar de forma poco precisa en este momento. Cuando crea el proyecto de biblioteca de clase, se le solicitan los objetivos que desea admitir. Solo obtendrá ConcurrentDictionary cuando seleccione ".NET Framework" y ".NET para Windows Store apps".

Elija cualquier otro y todo el espacio de nombre desaparecerá.

Esto mejorará con el tiempo, supongo, pero Windows Phone 7, XBox y Silverlight se están quedando rezagados en este momento.

+1

Tenías razón, pero solo recibo el mensaje con ** Proyectos de C# **. Desactivando todo excepto los dos que me dijiste, podría usar este espacio de nombres :). La plantilla del proyecto ** F # Portable Class Library ** no me indica estas opciones :(. – Okay

+2

Reprodé eso. F # está más restringido (sin XBox o teléfono) y tiene un subconjunto fijo. El cual incluye Silverlight así que un no-go all. –

+2

Sí, desafortunadamente, F # solo admite un subconjunto fijo de plataformas a través de aplicaciones portátiles, Silverlight 5, .NET Framework 4.5 y Windows Store. –

Cuestiones relacionadas