2010-11-12 3 views
13

J'essaie de valider un Uri en utilisant la méthode Uri.TryCreate et quand je l'ai appelée avec une chaîne invalide, la méthode a renvoyé la valeur true. Des idées pourquoi? Mon code est ci-dessous:Uri.TryCreate renvoie true pour toute valeur de chaîne?

private void button1_Click(object sender, EventArgs e) 
    { 
     Uri tempValue; 
     if (Uri.TryCreate("NotAURL", UriKind.RelativeOrAbsolute, out tempValue)) 
     { 
      MessageBox.Show("?"); 
     } 
    } 

Répondre

21

C'est une URL relative valide. Un exemple d'un URI non valide est:

"http://example.com<>" 

Si vous souhaitez autoriser que URIs, utilisez UriKind.Absolute absolue.

L'exemple échouera alors à analyser.

+0

Intéressant, je suppose que je ne l'ai pas considéré comme un dossier. J'essaie de valider les URL des sites Web, donc je ne pensais pas aux chemins des dossiers. Merci! –

+3

Il peut s'agir d'un URI relatif sur un site Web. Par exemple. Si vous êtes sur 'http: // example.com /', cette URL relative fait référence à 'http: // example.com/NotAURL'. –

+0

Oui, c'est ce que j'ai fait - l'a changé en UriKind.Absolute. Merci encore. –

Questions connexes