Я ищу тип данных для хранения путей UNC. Я уже пробовал использовать Ури, но всегда получаю UriFormatException, сообщающий мне
Invalid URI: The hostname could not be parsed.
Путь UNC, который я использую, - \\.\Dap0, который представляет процессор сбора данных.
Я работаю с.
Кто-нибудь знает такой тип данных? Может быть, тот, который позволяет работать с путем? Или я что-то упустил при использовании Uri?
Должен ли путь быть доступным при создании объекта Uri? Поскольку в настоящее время это не так, я использую этот путь только для целей тестирования.
Хотя такая строка может работать: file://./Dap0
Извините, я забыл упомянуть, что я уже пробовал использовать string, потому что на самом деле хочу этого избежать. В настоящее время я пытаюсь создать конструктор для исключения, и если бы я использовал string в качестве типа данных для пути UNC, у меня было бы два конструктора с DAPException(string, string) в качестве подписи.
file://./Dap0 не работает, я все еще получаю то же исключение.
Проблема в . для имени хоста, классу Uri это совсем не нравится.
Переведите точку в имя хоста в конструкторе System.Net.Dns.GetHostName (), а затем используйте Uri.IsUnc, чтобы проверить, действительно ли он





Ури - это правильный класс фреймворка для путей UNC и даже имеет метод IsUncPath для проверки этого.
Проблема здесь в том, что вы используете \\.\, который не является стандартным путем UNC и используется для доступа к пространству имен устройства Win32. Вы можете глянь сюда для более подробной информации.
Обратите внимание, что (из документа, ссылка на который приведена выше):
Most APIs won't support "\.\"; only those that are designed to work with the device namespace will recognize it. Always check the reference topic for each API to be sure.
Так что в вашей конкретной ситуации вам, вероятно, придется поработать с string или создать собственный класс.
Да, это то, что мне, вероятно, придется сделать. Спасибо за ссылку!
Наверное, тогда
string. Для URI требуется такая схема, какhttpилиftp.