Я хотел бы извлечь строку запроса и фрагмент из относительного URI, то есть URI без какой-либо информации о схеме или хосте.
Есть ли более элегантный способ сделать это, чем превратить его в абсолютный URI с поддельным именем хоста?
var relativeUri = "/dir1/dir2/file?a=b&c=d#fragment";
var uri = new Uri(new Uri("http://example.com"), relativeUri);
var path = Uri.UnescapeDataString(String.Concat(uri.Segments));
var query = uri.Query;
var fragment = uri.Fragment;
// path = "/dir1/dir2/file", query = "?a=b&c=d", fragment = "#fragment"