首页 > 解决方案 > 替代使用不区分大小写的比较器的 System.Web.HttpUtility.ParseQueryString?

问题描述

publish.htm如果您在发布 Windows 桌面应用程序时 ClickOnce 生成的页面上的“启动”链接的 HREF 中包含查询字符串:

        HREF="MyWindowsApp.application?ARG1=sis&ARG2=boom&ARG3=bah"

然后可以在 Windows 程序中访问和解析查询字符串:

      if (ApplicationDeployment.IsNetworkDeployed)
        {
            string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
            nameValueColl = System.Web.HttpUtility.ParseQueryString(queryString);               
        }

但是解析器返回的NameValueCollectionHttpUtility区分大小写的。如果您使用错误的案例对其进行测试,将找不到参数:

        if (ApplicationDeployment.IsNetworkDeployed)
        {
            string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
            nameValueColl = System.Web.HttpUtility.ParseQueryString(queryString); 
            if (nameValueColl.AllKeys.Contains("arg1")  ) 
                 {
                     // we don't get here
                 }         ​
       ​}

是否有替代方法System.Web.HttpUtility.ParseQueryString 使用不区分大小写的比较器?

标签: c#querystringparameternamevaluecollection

解决方案


推荐阅读