Цитата ниже: Рамки дизайна Guildelines
Я очень рекомендую эту книгу всем, кто разрабатывает фреймворки на .Net
Используйте System.Uri для представления данных URI / URL.
(Для параметров:
свойства и возвращаемые значения)
System.Uri намного безопаснее и богаче
способ представления URI. экстенсивный
манипулирование данными, связанными с URI, с использованием
было показано, что простые строки вызывают
много безопасности и правильности
проблемы.
Рассмотрим предоставление перегрузок на основе строк для наиболее часто используемых
члены с параметрами System.Uri.
В случаях, когда схема использования
взятие строки у пользователя будет
достаточно распространенным, вы должны рассмотреть
добавив удобную перегрузку
принимая строку. На основе строки
перегрузка должна быть реализована в
условия перегрузки на основе Uri.
Do Not автоматически перегружает все элементы на основе Uri версией, которая
принимает строку.
Как правило, API на основе Uri
предпочтительным. Перегрузки на основе строк
предназначено быть помощниками для большинства
общие сценарии. Поэтому вы
не должен автоматически предоставлять
перегрузки на основе строк для всех
варианты членов Uri. Быть
отборный и предоставляем таких помощников
только для наиболее часто используемых
варианты.
РЕДАКТИРОВАТЬ (за комментарии): В книге конкретно говорится: «Обширные манипуляции с данными URI с использованием простых строк, как было показано, вызывают много проблем безопасности и правильности.» I Я не уверен, какое дополнительное обоснование вы хотите использовать для System.Uri / UriBuilder. Кроме того, почему вы не хотите использовать преимущества инфраструктуры для чтения / манипулирования URI?
При разработке API, который будет использоваться другими, важно сделать их доступными, , а также надежными . По этой причине в книге упоминается, что вы должны предоставить «хорошие» перегрузки для общей функциональности. Однако для обеспечения правильности вы всегда должны реализовывать базовый код с URI.
Не могли бы вы уточнить ваши желания или причины использовать только строки?