如果我创建一个Uri使用UriBuilder这样的:
var rootUrl = new UriBuilder("http", "example.com", 50000).Uri;
Run Code Online (Sandbox Code Playgroud)
随后AbsoluteUri的rootUrl总是包含这样结尾的斜线:
http://example.com:50000/
Run Code Online (Sandbox Code Playgroud)
我想要的是创建一个Uri没有斜杠的对象,但似乎不可能.
我的解决方法是将其存储为字符串,并做一些丑陋的事情:
var rootUrl = new UriBuilder("http", "example.com", 50000).Uri.ToString().TrimEnd('/');
Run Code Online (Sandbox Code Playgroud)
我听说有人说如果没有尾随斜线,Uri就无效了.我不认为这是真的.我查看了RFC 3986,并在3.2.2节中说:
如果URI包含权限组件,则路径组件必须为空或以斜杠("/")字符开头.
它并没有说尾随斜线必须在那里.
我正在尝试在Intellij 的JUnit测试ClassLoader.getResourceAsStream中使用加载资源,但如果该资源位于子文件夹中,则找不到该资源。它可以在测试资源文件夹的根目录中找到。我正在使用正确的用斜杠替换点符号。-
这与这里提出的问题不同,因为我意识到我在资源路径的开头添加了斜杠。