的System.Uri'不包含' parsequerystring'的定义

时间:2018-03-02 01:42:41

标签: c# .net uri

按照构建C#类的在线指南,并将类代码粘贴到新类中,唯一没有解决的部分是这一行:

        canonicalRequest.AppendFormat("{0}\n", GetCanonicalQueryParameters(request.RequestUri.ParseQueryString()));

从这个功能

    private static string GetCanonicalRequest(HttpRequestMessage request, string[] signedHeaders)
    {
        var canonicalRequest = new StringBuilder();
        canonicalRequest.AppendFormat("{0}\n", request.Method.Method);
        canonicalRequest.AppendFormat("{0}\n", request.RequestUri.AbsolutePath);
        canonicalRequest.AppendFormat("{0}\n", GetCanonicalQueryParameters(request.RequestUri.ParseQueryString()));
        canonicalRequest.AppendFormat("{0}\n", GetCanonicalHeaders(request, signedHeaders));
        canonicalRequest.AppendFormat("{0}\n", String.Join(";", signedHeaders));
        canonicalRequest.Append(GetPayloadHash(request));
        return canonicalRequest.ToString();
    }

错误是System.Uri没有包含parsequerystring的定义?这看起来很奇怪,因为MSDN发现这是一个合法的函数,用于获取URL的查询部分。我有所有必需的用法和参考资料,但这仍然无法解决。有任何想法吗?

1 个答案:

答案 0 :(得分:2)

您需要添加对System.Net.Http.Formatting库的引用(右键单击References,然后选择“Add Reference”,浏览该库的.NET引用。

然后一定要在顶部添加正确的“使用”:

using System.Net.Http

该方法是一种扩展方法,文档可以是found here on MSDN