簡體   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