En las siguientes pruebas, ¿por qué (solo) falla la última?Uri.IsWellFormedUriString para la compatibilidad relativa con las URL Hashbang
[Fact]
public void IsWellFormedUriString_AbsolutNonHashTagUri_ReturnsTrue()
{
Assert.True(Uri.IsWellFormedUriString("http://www.RegularSite.org/Home", UriKind.Absolute));
}
[Fact]
public void IsWellFormedUriString_RelativeNonHashTagUri_ReturnsTrue()
{
Assert.True(Uri.IsWellFormedUriString("Home", UriKind.Relative));
}
[Fact]
public void IsWellFormedUriString_AbsolutHashTagUri_ReturnsTrue()
{
Assert.True(Uri.IsWellFormedUriString("http://www.w3.org/#!Home", UriKind.Absolute));
}
[Fact]
public void IsWellFormedUriString_RelativeHashTagUri_ReturnsTrue()
{
// Fails!
Assert.True(Uri.IsWellFormedUriString("#!Home", UriKind.Relative));
}
Si Uri
reconoce Hashbangs en la versión absoluta de IsWellFormedUriString
, ¿por qué no en la versión relativa? ¿Qué me estoy perdiendo?
Nota: This no ayuda.
Gracias por la respuesta detallada, pero según ella - la tercera prueba debería haber fallado, y no es así. Esto no responde mi pregunta. – seldary
@seldary No, la tercera prueba pasaría porque tiene 'http: // www.w3.org /' como un Uri absoluto que es suficiente para que pase porque detecta '#' como el inicio de un fragmento y '! Home' como el fragmento de texto, por lo tanto, pasa. – vane