2009-10-30 7 views
4

현재 URL의 특정 부분이 필요합니다.
말은 예를 들어, URL은 다음과 같습니다 http://www.abc.com/123/product/234?productid=123
그리고 특정 문자열이 "할 문자열 조작"과 같은 종류의 모든 http://www.abc.com/123Silverlight에서 현재 URL의 특정 부분을 가져 오는 방법은 무엇입니까?

포기하지 마십시오 답변이 포함되어 있는지 확인하고 싶습니다. 이런 종류의 URL을 얻을 수있는 방법이 있습니까? Uri.TryCreate 포함 -

+1

하십시오 내 대답이 정확하지 않은 경우 더 구체적입니다. –

답변

8

Uri 클래스는 열린 우리당 맹 글링을위한 몇 가지 정말 도움이되는 방법이 있습니다.

특히 GetComponents 방법이 도움이 될 수 있습니다.

+0

좋은 정보가 있지만 나를 도울 수있는 뭔가를 찾을 수 없습니다. – Manish

0
string myString = "http://www.abc.com/123/product/234?productid=123"; 
bool contains = myString.Contains("http://www.abc.com/123"); 
+0

일반화 코드를 작성하고 싶습니다 !!! 나는 그것이 자기 understad라고 희망했다. 그것은 단지 예일뿐입니다. 예제에 제공된 값으로 가지 말고 일반적으로 생각하십시오. – Manish

+0

http://www.xyz.com/http://www.abc.com/123을 시도하면 어떻게됩니까? 그것은 여전히 ​​시험을 통과합니다! –

+0

일반화하면 무엇을 의미합니까? –

5

이 시도 : 당신의 .XAP 파일의 URL을 줄 것이다

Application.Current.Host.Source.AbsoluteUri 

. .xap 경로를 바꾸어야하고 응용 프로그램 URI가 있어야합니다.

Application.Current.Host.Source.AbsoluteUri.Replace(@"ClientBin/MySilverlight.xap", ""); 
+2

당신도 그 문자열을 unhardcode 수 있습니다 .. Application.Current.Host.Source.AbsolutePath' 값으로 바꾸십시오 ... – felickz

0

당신은 HtmlPage.Document.DocumentUri을 (이 * .xaml.cs 파일에서 작동)

나는 완전히 일반적인 솔루션을 선택했다
2

하여 사용하여 현재 URI를 얻을 수 있습니다 :

/// <summary> 
    /// Get the site URL (one step up from ClientBin) 
    /// </summary> 
    public string HostWebSite 
    { 
     get 
     { 
      string host = App.Current.Host.Source.AbsoluteUri; 
      int clientBin = host.IndexOf("ClientBin", 0); 
      if (clientBin == -1) 
       return "Could not find \"ClientBin\" in " + host; 

      return host.Substring(0, clientBin); 
     } 
    } 
+0

나는 이것이 가짜 문자열을 반환하기보다는 예외를 던질 필요가 있다고 느낍니다. – theMayer

관련 문제