2010-11-12 8 views
13

Estoy intentando validar un Uri utilizando el método Uri.TryCreate y cuando lo llamé con una cadena no válida, el método devolvió verdadero. ¿Alguna idea de por qué? Mi código está a continuación:Uri.TryCreate devuelve verdadero para cualquier valor de cadena?

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

Respuesta

21

Esa es una URL relativa relativa. Un ejemplo de un URI no válido es:

"http://example.com<>" 

Si desea permitir sólo absoluta URI, utilice UriKind.Absolute.

El ejemplo no podrá analizarse.

+0

Interesante, supongo que no pensé en ello como una carpeta. Intento validar las URL de los sitios web, por lo que no estaba pensando en las rutas de las carpetas. ¡Gracias! –

+3

Podría ser un URI relativo en un sitio web. P.ej. si está en 'http: // example.com /', esa URL relativa se refiere a 'http: // example.com/NotAURL'. –

+0

Sí, eso es lo que hice, lo cambié a UriKind.Absoluto. Gracias de nuevo. –

Cuestiones relacionadas