我有一个连接到WCF服务的SL 3应用程序。此服务检索字节数组。我想使用FileStream将该数组保存为pdf文件。问题是,当重新检索字节数组时,在尝试显示SaveFileDialog时会出现异常,因为该操作是由回调方法启动的,而不是来自用户操作,似乎。 我想知道是否有任何解决方法。我已经有了字节数组,现在我需要将它保存到用户指定的位置。不管怎样... 任何线索?
提前致谢。
答案 0 :(得分: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
}