2010-11-12 13 views
13

Próbuję sprawdzić poprawność Uri przy użyciu metody Uri.TryCreate, a gdy nazwałem ją niepoprawnym łańcuchem, metoda zwróciła true. Jakieś pomysły, dlaczego? Mój kod jest poniżej:Uri.TryCreate zwraca wartość true dla dowolnej wartości ciągu?

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

Odpowiedz

21

To prawidłowy względny URL. Przykładem nieprawidłowej URI jest:

"http://example.com<>" 

Jeśli chcesz zezwolić tylko bezwzględny URI, należy UriKind.Absolute.

Ten przykład nie zostanie przeanalizowany.

+0

Interesujące, chyba nie myślałem o tym jako o folderze. Próbuję zweryfikować adresy URL witryny, więc nie myślałem o ścieżkach folderów. Dzięki! –

+3

Może to być względny URI na stronie internetowej. Na przykład. jeśli korzystasz z 'http: // example.com /', ten względny adres URL odnosi się do 'http: // example.com/NotAURL'. –

+0

Tak, właśnie to zrobiłem - zamieniłem na UriKind.Absolute. Dzięki jeszcze raz. –

Powiązane problemy