Лучшее предложение для внешнего файла конфигурации - PullRequest
2 голосов
/ 07 августа 2010

В настоящее время я использую xml в качестве файла конфигурации для своего приложения silverlight. У меня нет проблем с чтением файла, но теперь, когда мне также требуется обновить файл через Интернет (желательно Silverlight, так как будет отображаться предварительный просмотр цветов шрифта, размера и т. Д.), Единственный метод, о котором я подумал, - это сгенерировать весь файл и перезаписать существует через загрузку.

Есть ли более простой способ сделать это?

1 Ответ

1 голос
/ 08 августа 2010

Ну, нашёл свой собственный ответ, тоже поделился здесь.

Когда я читаю 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();

Я получил сохраненный XML-файл в ss.Затем, используя OpenWriteCompleted веб-клиента, я использовал

Stream outputStream = e.Result;
byte[] fileContent = Encoding.UTF8.GetBytes(ss);
outputStream.Write(fileContent, 0, fileContent.Length);
outputStream.Close();

. Используя 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();

благодарность автору (Нипун Томар) @, поскольку большинство идей пришло с его сайта

http://www.c -sharpcorner.com / UploadFile /nipuntomar / FileUploadsilverlight03182009030537AM / FileUploadsilverlight.aspx

...