我想根据一些字符串值构建一个 Uri,但我想避免在调用时显示端口.ToString()。
var uriBuilder = new UriBuilder("http://www.google.co.uk/")
{
Path = "test"
};
Run Code Online (Sandbox Code Playgroud)
下面的代码输出http://www.google.co.uk:80/test而不是http://www.google.co.uk/test. 有没有办法不将端口包含在最终字符串中,或者我是否必须使用其中一种解决方法(例如new Uri(new Uri(baseUrl), relativePath)?
小智 12
为了达到您需要的结果,您可以这样做。
var uriBuilder = new UriBuilder()
{
Scheme = "http",
Host = "www.google.co.uk",
Path = "test"
};
Uri uri = uriBuilder.Uri;
Run Code Online (Sandbox Code Playgroud)
在 uri 中,您将获得所需的“ http://www.google.co.uk/test ”结果。
如果你查看Microsoft 文档,你会发现
此构造函数使用 uri 中指定的 Fragment、Host、Path、Port、Query、Scheme 和 Uri 属性集初始化 UriBuilder 类的新实例。 如果 uri 未指定方案,则该方案默认为“http: ”。
如此处所述,将 设为Port-1 并且不会打印。
var uriBuilder = new UriBuilder("http://www.google.co.uk/")
{
Path = "test",
Port = -1
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5342 次 |
| 最近记录: |