Partager via


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.

Si vous souhaitez comparer uniquement la partie hôte des adresses de messagerie, comparez uniquement les membres Uri.Host.

API affectées