如何解决更改System.Uri的端口
| 所以我有一个包含地址的“ 0”对象,类似于“ 1”。我需要更改端口号,并保留地址的所有其他部分不变。假设我需要是2英镑。Uri
对象几乎是不可变的,因此我可以通过Port
属性访问端口号,但是它是只读的。有什么明智的方法可以创建完全相同的but0ѭ对象,但端口不同? “理智”是指“不弄乱正则表达式和字符串操作”,因为尽管在上面的示例中这很琐碎,但对我来说,它仍然闻起来像是一罐蠕虫。如果那是唯一的方法,我真的希望有人已经实施了它,也许那里有一些帮助者(尽管我没有找到)
提前致谢。
解决方法
您是否考虑过UriBuilder类?
http://msdn.microsoft.com/zh-CN/library/system.uribuilder.aspx
UriBuilder类提供了一种方便的方法来修改Uri实例的内容,而无需为每次修改创建新的Uri实例。
UriBuilder属性提供对只读Uri属性的读/写访问权限,以便可以对其进行修改。
,我对UriBuilder投票。我实际上有一个扩展方法来更改URI的端口:
public static class UriExtensions {
public static Uri SetPort(this Uri uri,int newPort) {
var builder = new UriBuilder(uri);
builder.Port = newPort;
return builder.Uri;
}
}
用法:
var uri = new Uri(\"http://localhost:1000/blah/blah/blah\");
uri = uri.SetPort(1337); // http://localhost:1337/blah/blah/blah
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。