2011-09-19 11 views
9

Niedawno zainstalowałem podgląd Windows 8 Dev, ale napotkałem kilka problemów. Patrząc na nowy API C#, mogę powiedzieć, że brakuje niektórych funkcji. Na przykład nie mogę czekać na odczyt pliku - klasyczny StreamReader nie pobiera już łańcucha nazwy pliku, ale raczej instancji Stream.Windows Developer Preview C# version - brakuje funkcji?

Czego mi brakuje? Odwróciłem przeglądarkę obiektów na lewą stronę, nie znajdując niczego.

Aktualizacja: jest to oczywiście różnica między przenośną biblioteką klas a tradycyjną kompilacją: http://msdn.microsoft.com/en-us/library/system.io.streamreader.aspx. Czy zatem nie jest jeszcze dostępny dla nas nieprzenośny interfejs Windows 8 API?

+0

używasz wersji WinRT .NET? –

+1

@Daniel Przypuszczam, że właśnie stworzyłem nowy projekt z szablonu Metro. Nie używam 'WinMD' na pewno, jeśli to jest pytanie, wyjście jest ustawione na' Windows Metro style Application'. –

Odpowiedz

5

Prawdopodobnie WinRT tego nie obsługuje. Powinien być w pełni .NET 4.5.

+0

Mam nadzieję, że tak, choć nie sądziłem, że Microsoft oczekuje od nas gry z nową zabawką (i faktycznie coś rozwija), nie dając nam tak "marginalnych" funkcji, takich jak czytanie plików. –

+0

Istnieją inne klasy w "System.IO". –

+4

@Mikulas Powinieneś używać klas WinRT z przestrzeni nazw 'Windows.Storage' do pracy z plikami, a konkretnie do otwierania ich jako strumieni. Następnie można owijać strumienie jako 'System.IO.Stream' przy użyciu metody rozszerzenia' AsStream() '. –

5

Podgląd dewelopera zawiera tylko biblioteki do tworzenia aplikacji Metro w Windows, a nie pełną strukturę. To (niestety) wyklucza również System.Data i kilka innych znanych przestrzeni nazw.

+3

Dzieje się tak, ponieważ Dev Preview ma tylko VS Express. Ale możesz zainstalować pełny VS (oczywiście podgląd) stąd: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27543 - który umożliwi typy projektów innych niż Metro. –

2

Pomijając fakt, że przy użyciu szablonu Metro unse WinRT (zobacz inne odpowiedzi) można po prostu otworzyć strumień:

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

Nie działa również w Metro. –

3

do zapisu/odczytu plików z metra aplikacji użyć nowego Window.Storage Pszczoła. Nie wierzę, że klasyczny plik do odczytu/zapisu będzie dostępny w aplikacji metra, ze względu na bezpieczeństwo i asynchroniczny charakter aplikacji metra.

+0

Znalazłem to, chociaż inni wciąż mogą z tym walczyć. Dzięki! Żałuję, że nie znaleziono również innych brakujących funkcji. –

Powiązane problemy