我目前正在使用xml作为我的silverlight应用程序的配置文件。 我没有问题阅读文件,但现在我还需要通过网络更新文件(最好是silverlight,因为它会显示字体颜色,大小等的预览),我想到的唯一方法是生成整个文件并覆盖通过上传存在。
有更简单的方法吗?
答案 0 :(得分:1)
好吧,找到了我自己的答案,也在这里分享。
当我读取xml文件时,我正在使用linq用于xml。 所以doc.save()有一个选项 通过这样做:
System.Xml.Linq.XDocument doc = System.Xml.Linq.XDocument.Parse(s);
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringWriter sr = new System.IO.StringWriter(sb);
doc.Save(sr);
string ss = sb.ToString();//result
sr.Close();
我在ss中有一个已保存的xml文件。 然后使用Web客户端的OpenWriteCompleted,我使用了
Stream outputStream = e.Result;
byte[] fileContent = Encoding.UTF8.GetBytes(ss);
outputStream.Write(fileContent, 0, fileContent.Length);
outputStream.Close();
使用Web客户端的OpenWriteAsync,URI将是我的通用处理程序的uri。 在通用处理程序
中FileStream fs = File.Open(context.Server.MapPath("~/ClientBin/" + "test.txt"), FileMode.Create);
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = context.Request.InputStream.Read(buffer, 0, buffer.Length)) != 0)
{
fs.Write(buffer, 0, bytesRead);
}
fs.Close();
归功于作者(Nipun Tomar)@,因为大多数想法来自他的网站