使用WebCLient发送文件:什么是userToken

本文关键字:什么 userToken 文件 WebCLient 使用 | 更新日期: 2023-09-27 18:25:38

我一直在尝试通过SilverLight应用程序中的WebClient将文件上传到服务器。我遇到过这个OpenWriteAsync方法,它得到的前两个参数很清楚,但第三个是object类型,它的名称是UserToken,所以尽管我做了很多搜索,但我找不到关于它是什么以及应该如何使用它的明确描述。(UserToken参数)。那里面是什么?

微软提供的用户定义对象是…,这是一个糟糕的解释。我的意思是,他们必须提供一张可以进入那里的所有房产的地图,比如:

new {param1 = value, param2= value}

开发人员无法猜测用户定义的对象是如何自然工作的。

使用WebCLient发送文件:什么是userToken

基本上就是你想要的样子。它包含将传递给OpenWriteCompleted事件中的事件参数的状态数据。WebClient除了传递数据之外,不会以任何方式使用这些数据

private void OpenWrite()
{
    webClient.OpenWriteCompleted += webClient_OpenWriteCompleted;
    // I'm just using this as an example. It can be any data type, but I am using byte[] so I can write it to the stream later.
    byte[] data = new byte[] { 0, 1, 3, 4 }; 
    webClient.OpenWriteAsync(uri, method, data);
}
private void webClient_OpenWriteCompleted(object sender, OpenWriteCompletedEventArgs e)
{
    // Now e.UserState contains whatever data you passed as the userToken.
    byte[] data = (byte[])e.UserState;
    // Now write this data to the stream
    e.Result.Write(data, 0, data.Length);
    e.Result.Close();
}

如果您不需要传递任何状态信息,只需传递null即可。