2011-09-19 7 views
9

Recientemente instalé Windows 8 Dev preview, aunque me encontré con bastantes problemas. Mirando la nueva API C#, puedo decir que faltan algunas características. Por ejemplo, no puedo esperar para leer un archivo: el clásico StreamReader ya no toma una cadena de nombre de archivo sino una instancia de Stream.Windows Developer Preview Versión de C#: ¿faltan características?

¿Qué me estoy perdiendo? He vuelto el buscador de objetos al revés, sin encontrar nada en realidad.

Actualización: esta es obviamente la diferencia entre una biblioteca de clases portátil y la compilación tradicional: http://msdn.microsoft.com/en-us/library/system.io.streamreader.aspx. Por lo tanto, ¿la API de Windows 8 no portátil ya está disponible para nosotros?

+0

¿Estás usando una versión WinRT de .NET? –

+1

@Daniel Supongo que sí, acabo de crear un nuevo proyecto de la plantilla de Metro. No estoy usando 'WinMD' con seguridad si esa es la pregunta, la salida está configurada en' Aplicación de Windows Metro style'. –

Respuesta

5

Es probable que el WinRT no sea compatible. Debería estar en .NET 4.5 completo.

+0

Espero que sí, aunque no pensé que Microsoft esperara que jugáramos con un juguete nuevo (y en realidad desarrollamos algo) sin darnos características tan "marginales" como la lectura de archivos. –

+0

Hay otras clases en 'System.IO'. –

+4

@Mikulas Se supone que debes utilizar las clases WinRT del espacio de nombres 'Windows.Storage' para trabajar con archivos, y específicamente para abrirlos como transmisiones. A continuación, puede envolver las secuencias como 'System.IO.Stream' usando el método de extensión' AsStream() '. –

5

La vista previa del desarrollador solo incluye bibliotecas para desarrollar aplicaciones Metro de Windows, y no el marco completo. Esto (por desgracia) también excluye System.Data y algunos otros espacios de nombres conocidos.

+3

Eso es porque la Vista previa del desarrollador solo tiene VS Express. Pero puede instalar el VS completo (también la vista previa, por supuesto) desde aquí: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27543 - que habilitará los tipos de proyectos que no sean de Metro. –

2

Aparte del hecho de que el uso de la plantilla de Metro UnSE WinRT (ver otras respuestas) simplemente podría abrir una secuencia:

using(FileStream fs = new FileStream(filename)) 
using (StreamReader reader = new StreamReader(fs)) 
{ 
    string text = reader.ReadToEnd(); 
} 
+1

Tampoco funcionará en Metro. –

3

para leer/escribir archivos de una aplicación de metro utilizar el nuevo Window.Storage APIs No creo que el clásico archivo de lectura/escritura esté disponible en una aplicación de metro, debido a la seguridad y la naturaleza asincrónica de las aplicaciones de metro.

+0

Encontrado ese, aunque otros todavía podrían estar luchando con esto. ¡Gracias! Deseando que también se encuentren otras funcionalidades faltantes. –

Cuestiones relacionadas