如何从Silverlight将字节数组保存到文件

4
我有一个连接到WCF服务的SL 3应用程序。该服务检索一个字节数组。我想使用FileStream将该数组保存为pdf文件。问题在于,当检索到字节数组时,当尝试显示SaveFileDialog时,由于该操作是由回调方法而不是用户操作发起的,因此会引发异常。 我想知道是否有任何解决方法。我已经有了字节数组,现在需要将其保存到用户指定的位置。无论如何... 有什么线索吗?
提前感谢。
1个回答

7

您是否将异步方法调用的方法完成事件连接起来了?请参见此处

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  
        }  

嗨,amazedsaint,我不知道出了什么问题。我注释了一些代码,然后取消了注释,然后对话框就出现了 ¿¿?? 但是在那之后,我在编写字节数组时遇到了一些麻烦,但你在这里的回复解决了我的问题。非常感谢!! - Gonzalo Méndez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接