0

所以我有以下代码:

    public override void Extract(object sender, ExtractionEventArgs e)
    {
            if (e.Response.HtmlDocument != null)
            {

                var myParam = e.Request.QueryStringParameters.Where(parameter => parameter.Name == QueryName).Select(parameter => parameter.Value).Distinct();

                myParam.

                // add the extracted value to the web performance test context
                e.WebTest.Context.Add(this.ContextParameterName, myParam.ToString());
                e.Success = true;
                return;

            }


        // If the extraction fails, set the error text that the user sees
        e.Success = false;
        e.Message = String.Format(CultureInfo.CurrentCulture, "Not Found: {0}", QueryName);
    }

它回来了:

System.Linq.Enumerable+<DistinctItem>d_81`1[system.string]

我期待以下内容:

0152-1231-1231-123d

我的问题是如何从extractioneventargs. 他们说有可能,但我不知道。

4

1 回答 1

1

你可以使用string.Join

string resultAsString = string.Join("-", myParam);
e.WebTest.Context.Add(this.ContextParameterName, resultAsString);

我在这里假设查询字符串参数值为01521231等,并且您希望将它们与破折号组合。

由于WebTest.Context.Add可以接受一个对象,因此如果适合您的目的,您还可以将结果添加为数组:

e.WebTest.Context.Add(this.ContextParameterName, myParam.ToArray());

(请注意,此字符串System.Linq.Enumerable+<DistinctItem>d_81``1[system.string]是类型名称,这是ToString()默认情况下为任何对象返回的名称(除非它已被覆盖)。)

于 2012-11-04T22:51:06.797 回答