4

我正在尝试从服务器异步下载文件,为此我正在使用 weblcient。在以异步方式下载文件时,我在 DownloadFileAsync(Uri 地址,字符串文件名,对象)方法用户令牌中发送文件(类文件库的实例),但我无法从调用的方法中检索我在此发送的对象下载完成后。这是代码详细信息

public void DownloadFileAsync( Uri 地址,字符串文件名,对象 userToken )

和 MSDN 说> userToken

类型:System.Object 一个用户定义的对象,它传递给异步操作完成时调用的方法。

实际上,我在调用中传递了文件名:

wc.DownloadFileAsync(uri, file.StorePath,file);

我的下载完成方法是

void wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
        {
            var file = (FileLibrary)sender;
            this.DownloadedFileName = file.FileId;

        }

错误是: 无法将类型为“System.Net.WebClient”的对象转换为类型 FileLibrary。

根据我对上述描述的理解,对象应该很容易被转换 文件库,因为我在调用相同类型时发送的文件名。为什么我收到错误或者是否有任何其他方法可以检索发送的 Object:userToken

4

1 回答 1

8

您发送的对象应该可以通过e.UserState属性访问

试试这个

var file = (FileLibrary) e.UserState

于 2012-09-13T07:03:17.980 回答