2016-07-14 19 views
0

Ich bin eine Silverlight-Anwendung und die Anwendung mit einen des Endpunkts in einem WCF-Dienst und das Ausgabedatenformat ist der Zugriff in string [als JSON-Datei]Download-Antwort als Textdatei in Silver

Nun, was ich habe mein Wcf-Dienst zu tun ist, um die Daten zu dienen als JSON-Datei Benutzer zu beenden [als Textdatei] wie kann ich dies tun

zur Zeit wie dieser nicht ich rufe

webservice.get_Export_ClassWiseCompleted += new EventHandler<get_Export_ClassWiseCompletedEventArgs>(webservice_get_Export_ClassWiseCompleted); 

webservice.get_Export_ClassWiseAsync(class_id); //call wcf service async 


void webservice_get_Export_ClassWiseCompleted(object sender, get_Export_ClassWiseCompletedEventArgs e) 
{ 
    if (e.Error != null) 
    { 
     MessageBox.Show((string)e.Error.InnerException.Message); 
    } 
    else 
    { 
     if (e.Result != null) 
     { 
      string response_data = (string)e.Result; //write this data to text file 
        StreamWriter writer = new StreamWriter("file.txt"); 
        writer.WriteLine(response_data); 
        writer.Close(); 
     } 
     else 
     { 
      MessageBox.Show("NO result"); 
     } 
    } 
} 
+0

Schreiben Sie die JSON-Zeichenfolge in eine Datei? Sie sollten in der Lage sein, etwas wie 'StreamWriter writer = new StreamWriter (" file "); writer.WriteLine (Antwortdaten); writer.Close; 'Ich würde es erwarten. – Tim

+0

Ich bekomme Fehler Dateibetrieb nicht erlaubt .. –

+0

Zeigen Sie den Code, wo Sie den Fehler erhalten. Ohne weitere Informationen können wir Ihnen nicht helfen. – Tim

Antwort

1

Aus Sicherheitsgründen Silverlight lassen Sie speichern ohne einen Dateidialog speichern, da es ausführbar ist ng in einer Sandbox.

void webservice_get_Export_ClassWiseCompleted(object sender, get_Export_ClassWiseCompletedEventArgs e) { 
    if (e.Error != null) { 
     MessageBox.Show((string)e.Error.InnerException.Message); 
    } else { 
     if (e.Result != null) { 
      SaveFileDialog sfd = new SaveFileDialog() { 
       DefaultExt = "txt", 
       Filter = "Text Files (*.txt)|*.txt|All files(*.*)|*.*", 
       FilterIndex = 1, 
       DefaultFileName = "file" 
      }; 
      if (sfd.ShowDialog() == true) { 
       string response_data = (string)e.Result; //write this data to text file 
       using(Stream stream = sfd.OpenFile()) { 
        using(StreamWriter writer = new StreamWriter(stream)) { 
         writer.Write(response_data); 
        } 
       } 
      } 
     } else { 
      MessageBox.Show("NO result"); 
     } 
    } 
}