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