2011-09-19 37 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

发现其中一个,尽管其他人可能仍然在为此而苦苦挣扎。谢谢!希望其他缺失的功能也可以找到。 –

相关问题