【问题标题】:WebClient.DownloadFileAsync Method : How to retrieve the Object?WebClient.DownloadFileAsync 方法:如何检索对象?
【发布时间】:2012-09-13 06:46:42
【问题描述】:

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

公共无效下载文件异步( URI地址, 字符串文件名, 对象用户令牌 )

和 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”类型。

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

【问题讨论】:

    标签: c# multithreading webclient


    【解决方案1】:

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

    试试这个

    var file = (FileLibrary) e.UserState

    【讨论】:

      猜你喜欢
      • 2015-10-31
      • 1970-01-01
      • 2017-04-23
      • 2013-11-13
      • 2011-06-07
      • 2021-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多