Les informations utilisateur dans les URI mailto:
sont comparées
Auparavant, Uri ne comparait pas les informations utilisateur lors de la comparaison de deux instances Uri
pour l’égalité. Toutefois, ce comportement n’est pas intuitif dans le cas d’URI mailto:
. Avec cette modification, Uri.Equals et l’opérateur ==
prennent désormais en compte les informations utilisateur lors de la comparaison des URI.
Comportement précédent
Avant .NET 8, les deux comparaisons suivantes étaient retournées 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.
Nouveau comportement
À compter de .NET 8, la première comparaison retourne toujours true
, mais la deuxième comparaison (des URI mailto
) retourne 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.
Version introduite
.NET 8
Type de changement cassant
Ce changement est un changement de comportement.
Raison du changement
Le comportement précédent était inattendu et peu intuitif.
Action recommandée
Si vous souhaitez comparer uniquement la partie hôte des adresses de messagerie, comparez uniquement les membres Uri.Host.