Я продолжаю чувствовать, что заново изобретаю колесо, поэтому я решил спросить здесь толпу. Представьте, что у меня есть такой фрагмент кода:
string protocol = "http"; // Pretend this value is retrieved from a config file
string host = "www.google.com"; // Pretend this value is retrieved from a config file
string path = "plans/worlddomination.html"; // Pretend this value is retrieved from a config file
Я хочу создать URL-адрес "http://www.google.com/plans/worlddomination.html". Я продолжаю делать это, записывая глупый код, подобный этому:
protocol = protocol.EndsWith("://") ? protocol : protocol + "://";
path = path.StartsWith("/") ? path : "/" + path;
string fullUrl = string.Format("{0}{1}{2}", protocol, host, path);
Что мне действительно нужно, так это какой-то API-интерфейс:
UrlBuilder builder = new UrlBuilder();
builder.Protocol = protocol;
builder.Host = host;
builder.Path = path;
builder.QueryString = null;
string fullUrl = builder.ToString();
Я должен верить, что это где-то существует в .NET Framework, но нигде не сталкивался.
Каков наилучший способ создания защищенных от ошибок (т. Е. Никогда не искаженных) URL-адресов?