小编Han*_*hal的帖子

在序列化XML时更改元素的顺序

我需要将Object序列化为XML并返回.XML已修复,我无法更改它.之后我无法生成这个结构bookingList.

我怎样才能"团"这些<booking>元素出现的列表中,并<error><counter>名单的前<booking>元素.

看我的例子:

我需要的结构....

<nicexml>
<key_id>1234567</key_id>
<surname>Jil</surname>
<name>Sander</name>
<station_id>1</station_id>
<ownBookings>
    <bookingList>
        <error></error>
        <counter>20</counter>
        <booking>
             <bookingID>1234567890</bookingID>
        </booking>
        <booking>
             <bookingID>2345678901</bookingID>
        </booking>
    </bookingList>
</ownBookings>
</nicexml>
Run Code Online (Sandbox Code Playgroud)

结构我得到下面的C#代码....

<nicexml>
<key_id>1234567</key_id>
<surname>Jil</surname>
<name>Sander</name>
<station_id>1</station_id>
<ownBookings>
    <bookingList>
           <booking>
        <booking>
             <bookingID>1234567890</bookingID>
        </booking>
        <booking>
             <bookingID>2345678901</bookingID>
        </booking>
             <booking>
        <error></error>
        <counter>20</counter>
    </bookingList>
</ownBookings>
</nicexml>
Run Code Online (Sandbox Code Playgroud)

C#代码:

using System;
using System.Xml.Serialization;
using System.Collections.Generic;

namespace xml_objects_serials
{
    public class bookings
    {
        public class nicexml
        {
            public string key_id
            { get; set; }

            public string …
Run Code Online (Sandbox Code Playgroud)

c# xml list xml-serialization

23
推荐指数
1
解决办法
2万
查看次数

等待类方法完成C#

我需要从Https源下载文件。我将像这样进行异步(到目前为止有效):

void doChecksbeforDownload(){
//Do some Checks
   DownloadFileAsync();

}

void DownloadFileAsync(){
     ...
     ... 
     this.client.UploadStringCompleted += new UploadStringCompletedEventHandler(client_UploadStringCompleted);
     this.client.Headers["Content-Type"] = "application/x-www-form-urlencoded";
     this.client.UploadStringAsync(new Uri(url), "POST", PostParameter);
     ...
     ...
}
Run Code Online (Sandbox Code Playgroud)

并在完成时调用client_UploadStringCompleted()方法:

void client_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
    {
       //Do Check here
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好。现在,我将所有这些都放在“函数”类中,并按如下方式调用方法:

 Functions f = new Functions();
 f.doChecksbeforeDownload();
Run Code Online (Sandbox Code Playgroud)

我希望doChecksbeforeDownload()等到clientUloadStringCompleted完成为止。

我如何告诉doChecksbeforeDownload等待,直到DownloadFilesAsync中的Async调用完成并准备好。

  1. 致电doChecksbeforeDownload()
  2. ChecksbeforeDownload()-> DownloadFileAsync()
  3. ChecksbeforeDownload()->等待...。
  4. DownloadFileAsync()->完成并准备就绪
  5. ChecksbeforeDownload()->将FOO返回到主类

是否有最佳实践/示例来实现这一目标?我坚持这一点。

提前致谢

汉尼斯

c# asynchronous download wait

4
推荐指数
1
解决办法
4607
查看次数

标签 统计

c# ×2

asynchronous ×1

download ×1

list ×1

wait ×1

xml ×1

xml-serialization ×1