2011-09-19 36 views
9

我最近安裝了Windows 8 Dev預覽版,但我遇到了很多問題。看看新的C#API,我可以說缺少一些功能。例如,我找不到一個等待讀取文件 - 經典的StreamReader不再需要一個文件名字符串,而是一個Stream的實例。Windows開發人員預覽C#版本 - 功能缺失?

我錯過了什麼?我把對象瀏覽器翻出來了,並沒有找到任何東西。

更新:這顯然是便攜式類庫和傳統彙編之間的區別:http://msdn.microsoft.com/en-us/library/system.io.streamreader.aspx。因此,我們有沒有可移植的Windows 8 API?

+0

你使用WinRT版本的.NET嗎? –

+1

@Daniel我想,我剛從Metro模板創建了一個新項目。如果這是個問題,我不會使用'WinMD',輸出設置爲'Windows Metro style Application'。 –

回答

5

可能是WinRT不支持。它應該在完整的.NET 4.5中。

+0

我當然希望如此,儘管我沒有想到微軟希望我們能夠玩一個新玩具(並實際開發一些東西),而不會給我們像文件閱讀這樣的「邊緣」特性。 –

+0

'System.IO'中還有其他的類。 –

+4

@Mikulas你應該使用'Windows.Storage'命名空間的WinRT類來處理文件,特別是將它們作爲流打開。然後你可以使用擴展方法'AsStream()'將流封裝爲'System.IO.Stream'。 –

5

開發人員預覽版僅包含用於開發Windows Metro應用程序的庫,而不是完整的框架。這(可惜)也不包括System.Data和一些其他衆所周知的命名空間。

+3

這是因爲Dev Preview只有VS Express。但是,您可以從這裏安裝完整的VS(當然也可以預覽):http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27543 - 這將啓用非Metro項目類型。 –

2

除了您在使用地鐵模板將unse WinRT的事實(見其他答案),你可以簡單地打開一個流:

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

無法在Metro中使用。 –

3

讀取/從metro應用寫入文件使用新Window.Storage蜜蜂。由於城域應用程序的安全性和異步性,我不相信經典的文件讀/寫將在metro應用程序中可用。

+0

發現其中一個,儘管其他人可能仍然在爲此而苦苦掙扎。謝謝!希望其他缺失的功能也可以找到。 –

相關問題