2016-07-14 2 views
0

J'utilise une application Silverlight et l'application accès à l'un du point de terminaison dans un service WCF et le format de données de sortie est dans la chaîne [en tant que fichier JSON]réponse Télécharger le fichier texte dans silverlight

Maintenant ce que j'ai à faire est de servir les données sous forme de fichier JSON utilisateur final [en tant que fichier texte] Comment puis-je faire

Actuellement, je fais appel à mon service WCF comme celui-ci

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

Ecrivez la chaîne JSON dans un fichier? Vous devriez être capable de faire quelque chose comme 'StreamWriter writer = new StreamWriter (" fichier "); writer.WriteLine (response_data); écrivain.Fermer; 'Je m'attendrais. – Tim

+0

J'obtiens l'opération de fichier d'erreur non autorisée. –

+0

Montrez le code où vous obtenez l'erreur. Nous ne pouvons pas vous aider sans plus d'informations. – Tim

Répondre

1

pour des raisons de sécurité silverlight ne laissera pas vous enregistrez sans une boîte de dialogue Enregistrer le fichier car il est executi ng dans un bac à sable.

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"); 
     } 
    } 
}