2016-10-28 19 views
0

もう1つのasp.net/c#アプリは、クエリ文字列を含むリンクを使用して自分のWPFアプリケーションを開きます。私のWPFアプリケーションがブラウザで開くか起動するとき、どうやってURLを取得するのですか?開かれたアプリケーションのURLを取得するにはどうすればよいですか?

ジョナサン・アレンの提案で
+2

ためSystem.Webの参照を使用して回避する以下の私の作業コード質問をしたときに、もう少し明確にしてください。あなたは何に問題がありますか? –

+0

WPF? ClickOnceでこれをやっていますか? –

+0

はい、VS 2015とFramwork 4.5を使用しているC#WPFがあります。私はClickOnceも使用しています。私のWPFアプリ、http://localhost/xpab_test/WPFHost.xbapは問題なくブラウザで開かれます。私はWPFが初めてで、ブラウザのURLのクエリ文字列を含むURLを取得する方法を知らなかった。例えばhttp://localhost/xpab_test/WPFHost.xbap?id = 1 –

答えて

0

https://msdn.microsoft.com/en-us/library/ms172242.aspx

private NameValueCollection GetQueryStringParameters() 
{ 
    NameValueCollection nameValueTable = new NameValueCollection(); 

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

    return (nameValueTable); 
} 
+0

これを試してみましょう、本当に助けてくれてありがとう –

0

、HttpUtility

private NameValueCollection GetQueryStringParameters() 
    { 
     NameValueCollection nameValueTable = new NameValueCollection(); 

     if (ApplicationDeployment.IsNetworkDeployed) 
     { 
      string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query; 
      string[] querySegments = queryString.Split('&'); 
      foreach (string segment in querySegments) 
      { 
       string[] parts = segment.Split('='); 
       if (parts.Length > 0) 
       { 
        string key = parts[0].Trim(new char[] { '?', ' ' }); 
        string val = parts[1].Trim(); 
        //MessageBox.Show("key=" + key + " val=" + val); 
        nameValueTable.Add(key, val); 
       } 
      } 

     } 

     return (nameValueTable); 
    } 
関連する問題