Come si controlla che una stringa uri sia valida (che è possibile alimentare con il costruttore Uri)?Come verificare che una stringa uri sia valida
Finora ho solo avere il seguente, ma per ovvie ragioni preferirei un modo meno bruta:
Boolean IsValidUri(String uri)
{
try
{
new Uri(uri);
return true;
}
catch
{
return false;
}
}
ho provato Uri.IsWellFormedUriString ma non sembra come tutto ciò che si può buttare a il costruttore. Per esempio:
String test = @"C:\File.txt";
Console.WriteLine("Uri.IsWellFormedUriString says: {0}", Uri.IsWellFormedUriString(test, UriKind.RelativeOrAbsolute));
Console.WriteLine("IsValidUri says: {0}", IsValidUri(test));
L'output sarà:
Uri.IsWellFormedUriString says: False
IsValidUri says: True
Aggiornamento/Risposta
Il costruttore Uri utilizza tipo assoluto per impostazione predefinita. Ciò causava una discrepanza quando ho provato a utilizzare Uri.TryCreate e il costruttore. Ottenete il risultato previsto se abbinate UriKind sia al costruttore che a TryCreate.
Grazie,
Buona funzione che hai fatto! +1 –
Non aggiungere una risposta come modifica alla domanda. Se aggiunge qualcosa alle risposte esistenti, aggiungilo come risposta separata. Si prega di modificare la risposta fuori dalla tua domanda. –
possibile duplicato di [Come verificare se una stringa è un URL HTTP valido?] (Http://stackoverflow.com/questions/7578857/how-to-check-whether-a-string-is-a-valid-http -url) – Amalea