2010-02-01 5 views
4

SL 3 응용 프로그램을 WCF 서비스에 연결했습니다. 이 서비스는 바이트 배열을 검색합니다. 그 배열을 FileStream을 사용하는 pdf 파일로 저장하고 싶습니다. 문제는 바이트 배열을 검색 할 때 SaveFileDialog를 표시하려고 할 때 예외가 발생한다는 것입니다. 그 이유는 해당 작업이 사용자 작업이 아니라 콜백 메서드에 의해 시작되기 때문입니다. 이 문제를 해결할 수있는 방법이 있는지 알고 싶습니다. 바이트 배열이 이미 있으므로 사용자가 지정한 위치에 저장해야합니다. 아무리 ... 실마리?Silverlight에서 파일에 바이트 배열을 저장하는 방법

미리 감사드립니다.

답변

6

비동기 메서드 호출의 메서드 완료 이벤트에 연결하고 있습니까? 먼저 아래 그림과 같이 파일 스트림 포인터를 얻어서 다음 대화 상자를 열어 의해 - 당신의 콜백 메서드 내이

http://www.silverlightshow.net/items/Using-the-SaveFileDialog-in-Silverlight-3.aspx

, 당신은 파일에 기록 논리를 구현할 수 있습니다 참조하십시오.

 try 
     { 
      byte[] fileBytes = //your bytes here 
      SaveFileDialog dialog=new SaveFileDialog(); 

      //Show the dialog    
      bool? dialogResult = this.dialog.ShowDialog(); 

      if (dialogResult!=true) return; 


      //Get the file stream 

      using (Stream fs = (Stream)this.dialog.OpenFile()) 
      { 
       fs.Write(fileBytes, 0, fileBytes.Length); 
       fs.Close(); 

       //File successfully saved 
      } 
     } 
     catch (Exception ex) 
     { 
      //inspect ex.Message 
     } 
+0

안녕하세요. 나는 무엇이 잘못 됐는지를 모릅니다. 나는 주석을 달고 일부 코드의 주석 처리를 제거한 다음 대화 상자에 ¿ ¿을 표시 했습니까? 그러나 그 후, 바이트 배열을 쓰는 데 어려움이 있었지만 응답은 해결책이었습니다. 고마워요 !! –

관련 문제