2014-11-08 5 views
1

원본 Uri의 일부 문자를 바꾼 후 새로운 Uri를 만들고 싶습니다. 내가 문자열에서 새 열린 우리당을 만들 때 나는 인스턴스를 교체 한 후, 이제 Absolute Uri에서 새로운 Uri를 만듭니다.

string original = uri.AbsoluteUri.Replace("foo", "bar").Replace("xyz", "abc"); 

를 호출하고 그것이 즉 열린 항상 열린 우리당의 ToString() 표현으로 반환

Uri newUri = new Uri(original); 

사람이 읽을 수있는 즉 - 우리는 %20 대신에 을 보유하고 있는데, 이는 가 아니라 내가 갖고 싶은 것입니다.

은 더 명확하게하려면 :

원래 문자열 = http://foo.example.com/images/Cute%20Cats/New%20Images/cat-1.jpg

새로운 열린 우리당 = http://foo.example.com/images/Cute Cats/New Images/cat-1.jpg

예상 = http://foo.example.com/images/Cute%20Cats/New%20Images/cat-1.jpg

그래서, 나는 새로운 열린 우리당에서를 만들 수 있습니다 마지막 방법 위의 원본 문자열은 그대로입니까?

답변

0

OriginalString 속성을 사용하여 이스케이프 된 URI를 표시 할 수 있습니다.

Console.WriteLine(newUri.OriginalString); 

은 당신의 보는 당신의 Uri 객체에 존재하지만에서 호출 ToString 방법은 이스케이프 버전을 표시 버전을 탈출했다.

+0

나는 ToString()을 호출하지 않는다. 질문을주의 깊게 읽으십시오! –

+1

URI가 제대로 작성되지 않았 음을 확인하는 값은 어떻게 보입니까? 귀하의 질문은 실제로 당신이 새로운 잘못된 URI를보고있는 곳에 대한 정보를 제공하지 않으므로 추측을하고 어디에서나 ToString 메소드를 호출한다고 가정합니다 (예 : Console.WriteLine 메소드). – keyboardP