Since I’ve repeated enough times the somewhat cumbersome exercise of inferring what the various properties of the .NET Framework (as of version 4.5) System.Uri class return for a “typical” HTTP/HTTPS URL from the official documentation – and generally resorted to manual testing to be 100% certain of the behavior – here’s a visual guide.
Given a System.Uri instance constructed as follows (C#):
System.Uri uri = new System.Uri("https://www.example.com:8080/dir1/dir2/page.aspx?param1=val1¶m2=val2#anchor"); Here’s what the various relevant properties of that Uri instance return:
| Property | String value |
|---|---|
| AbsoluteUri | https://www.example.com:8080/dir1/dir2/page.aspx?param1=val1¶m2=val2#anchor |
| OriginalString |
https://www.example.com:8080/dir1/dir2/page.aspx?param1=val1¶m2=val2#anchor |
| Scheme |
https |
| Host |
www.example.com |
| Authority |
www.example.com:8080 |
| Port |
8080 |
| AbsolutePath |
/dir1/dir2/page.aspx |
| PathAndQuery |
/dir1/dir2/page.aspx?param1=val1¶m2=val2 |
| Query |
?param1=val1¶m2=val2 |
| Fragment |
#anchor |
The Segments property returns the following String array:
String[] {
"/",
"dir1/",
"dir2/",
"page.aspx"
}
Hopefully this will save a little time for all of you as well as for me!
