回复于(对象)

pet*_*ter 2 .net c# asp.net

如果我有一个类似这样的网页,

protected void Page_Load(object sender, EventArgs e)
    {
        List<string> items = new List<string>()
        {
            "test1",
            "test2",
            "test3"
        };

        Response.Write(items);
    }
Run Code Online (Sandbox Code Playgroud)

如何让List在另一端退出,例如我在另一端有一些代码,如下所示,

static void Main(string[] args)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:50513/Default.aspx");

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        Stream responseStream = response.GetResponseStream();
    }
Run Code Online (Sandbox Code Playgroud)

我如何实际将列表拉回来?

我必须使用asp .net页面,因为我必须使用第三方API的限制.

Dan*_* T. 5

为了更多地扩展Joe的答案,最好的办法是使用JSON.NET来序列化和反序列化列表.由于Web只能来回发送字符串,因此JSON非常适合通过Web发送对象.您可以像这样序列化列表(使用JSON.NET):

List<string> items = new List<string>()
{
    "test1",
    "test2",
    "test3"
};

var json = JsonConvert.SerializeObject(items);
Response.Write(json);
Run Code Online (Sandbox Code Playgroud)

这将写入响应:

["test1", "test2", "test3"]
Run Code Online (Sandbox Code Playgroud)

在接收端,使用:

var list = JsonConvert.DeserializeObject<List<string>>(json);
Run Code Online (Sandbox Code Playgroud)

你会得到原来的清单.至于图标,如果您无法传递链接并且实际上需要传递图标本身,您可以将文件序列化为Base64编码的字符串(然后对其进行解码),或者您可以使用BSON:

http://james.newtonking.com/archive/2009/12/26/json-net-3-5-release-6-binary-json-bson-support.aspx

我自己没有这样做,所以我不能提供一个例子,对不起.