C# WindowsPhone7中的序列化
我正在用.Net为WindowsPhone7编写一个程序 我有一个零件代码:C# WindowsPhone7中的序列化,c#,.net,json,serialization,windows-phone-7.1,C#,.net,Json,Serialization,Windows Phone 7.1,我正在用.Net为WindowsPhone7编写一个程序 我有一个零件代码: public void deSerialize() { sr = new StreamReader(new IsolatedStorageFileStream("Data\\myFile.txt", FileMode.Open, myFile)); DataContractJsonSerializer serializer = new DataContractJsonSerial
public void deSerialize()
{
sr = new StreamReader(new IsolatedStorageFileStream("Data\\myFile.txt", FileMode.Open, myFile));
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(RootObject));
string text = sr.ReadToEnd();
Stream strm = File.OpenRead("Data\\myFile.txt");
menetrend = serializer.ReadObject(strm) as RootObject;
}
我的问题在这里:
Stream strm=File.OpenRead(“Data\myFile.txt”)
编译器无法看到myFile.txt,我不知道如何解决该问题。您需要使用IsolatedStorageFileStream。您不能直接读取该文件。我肯定会研究的是,您似乎试图通过
文件
和使用隔离存储流
打开太多的流。正如@PhilBolduc所说的,您需要使用IsolatedStorageStream
。我还想提出一个建议,在访问流时使用using
语句,以便它们自行处理
using (var isoFileStream = new IsolatedStorageFileStream(filePath, FileMode.OpenOrCreate, storage))
{
}
在我看来,您的代码的第一行已经向您展示了如何打开
流
…?这是一个错误的代码,这个修订的代码部分:使用(Stream strm=new IsolatedStorageFileStream(“Data\\myFile.txt”,FileMode.OpenOrCreate,myFile))menetrend=serializer.ReadObject(strm)作为RootObject;好的,我理解,我使用这个:使用(Stream strm=new IsolatedStorageFileStream(“Data\\myFile.txt”,FileMode.OpenOrCreate,myFile))menetrend=serializer.ReadObject(strm)作为RootObject;但这并不好,因为应该读取FileMode。我不知道如何使用。谢谢你的回答,代码很好。public void反序列化(){DataContractJsonSerializer serializer=new DataContractJsonSerializer(typeof(RootObject));使用(Stream strm=new IsolatedStorageFileStream(“Data\\myFile.txt”,FileMode.OpenOrCreate,myFile))menetrend=serializer.ReadObject(strm)作为RootObject;}我理解并知道这一点。但是如何编写代码呢?我在这里重新编写了代码:使用(Stream strm=new IsolatedStorageFileStream(“Data\\myFile.txt”,FileMode.OpenOrCreate,myFile))menetrend=serializer.ReadObject(strm)作为RootObject;