WebBrowser コントロールでクエリ パラメータにアクセスする方法はありますか、それとも手動で文字列を分割する必要がありますか? 例えば:
http://www.mysite.com?paramter=12345
パラメータの値にアクセスするだけです。xaml ページを操作するときに、QueryString プロパティがあることを知っています。Web ページでの作業に似たようなものはありますか?
WebBrowser コントロールでクエリ パラメータにアクセスする方法はありますか、それとも手動で文字列を分割する必要がありますか? 例えば:
http://www.mysite.com?paramter=12345
パラメータの値にアクセスするだけです。xaml ページを操作するときに、QueryString プロパティがあることを知っています。Web ページでの作業に似たようなものはありますか?
私はこれをどこで手に入れたのか思い出せません、おそらくそうです。
public static class UriExtensions
{
private static readonly Regex QueryStringRegex = new Regex(@"[\?&](?<name>[^&=]+)=(?<value>[^&=]+)");
public static IEnumerable<KeyValuePair<string, string>> ParseQueryString(this Uri uri)
{
if (uri == null)
throw new ArgumentException("uri");
var matches = QueryStringRegex.Matches(uri.OriginalString);
for (var i = 0; i < matches.Count; i++)
{
var match = matches[i];
yield return new KeyValuePair<string, string>(match.Groups["name"].Value, match.Groups["value"].Value);
}
}
}
他の誰かがそれを行う別の方法を持っていない限り、私は同じことを手動で達成することができました:
// The url looked something like this http://www.mysite.com?param1=value¶m2=value
var parameterValue = e.Uri.Query.Split('&')
.Where(s => s.Split('=')[0] == "param2")
.Select(s => s.Split('=')[1])
.FirstOrDefault();
私はこの方法が悪いとは思いません.ASP.NET、.NETなどに存在することを知っているので、このタイプの解析のための組み込みメソッドがあるかどうか疑問に思っていました.