繁体   English   中英

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

[英]Sending file using WebCLient: What is userToken?

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

Microsoft提供的用户定义的对象是一个可怕的解释。 我的意思是他们必须提供所有可以进入的属性的地图,例如:

new {param1 = value, param2= value}

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

基本上,这就是您想要的。 它包含将在OpenWriteCompleted事件中传递给事件args的状态数据。 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM