Compartir a través de


Se compara la información de usuario en los URI mailto:

Antes, Uri no comparaba la información del usuario cuando se comparaba la igualdad de dos instancias de Uri. Sin embargo, este comportamiento no es intuitivo en el caso de los URI mailto:. Con este cambio, Uri.Equals y el operador == ahora tienen en cuenta la información del usuario al comparar los URI.

Comportamiento anterior

Antes de .NET 8, las comparaciones siguientes devolvían true.

Uri uri1 = new Uri("https://user1@www.microsoft.com");
Uri uri2 = new Uri("https://user2@www.microsoft.com");
System.Console.WriteLine(uri1 == uri2); // True.

Uri uri3 = new Uri("mailto:user1@microsoft.com");
Uri uri4 = new Uri("mailto:user2@microsoft.com");
System.Console.WriteLine(uri3 == uri4); // True.

Comportamiento nuevo

A partir de .NET 8, la primera comparación sigue devolviendo true, pero la segunda comparación (de URI mailto) devuelve false.

Uri uri1 = new Uri("https://user1@www.microsoft.com");
Uri uri2 = new Uri("https://user2@www.microsoft.com");
System.Console.WriteLine(uri1 == uri2); // True.

Uri uri3 = new Uri("mailto:user1@microsoft.com");
Uri uri4 = new Uri("mailto:user2@microsoft.com");
System.Console.WriteLine(uri3 == uri4); // False.

Versión introducida

.NET 8

Tipo de cambio importante

Este es un cambio de funcionamiento.

Motivo del cambio

El comportamiento anterior era inesperado y poco intuitivo.

Si desea comparar solo la parte host de las direcciones de correo electrónico, compare solo los miembros Uri.Host.

API afectadas