Dela via


Användarinformation i mailto: URI:er jämförs

Uri Tidigare jämfördes inte användarinformation när två Uri instanser jämfördes för likhet. Det här beteendet är dock inte intuitivt när det gäller mailto: URI:er. Med den här ändringen och Uri.Equals operatorn == nu överväga användarinformation när du jämför URI:er.

Tidigare beteende

Före .NET 8 returnerade truebåda följande jämförelser .

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.

Nytt beteende

Från och med .NET 8 returnerar trueden första jämförelsen fortfarande , men den andra jämförelsen (av mailto URI:er) returnerar 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 introducerad

.NET 8

Typ av icke-bakåtkompatibel ändring

Den här ändringen är en beteendeförändring.

Orsak till ändringen

Det tidigare beteendet var oväntat och ointuitivt.

Om du bara vill jämföra värddelen av e-postadresser jämför du bara Uri.Host medlemmarna.

Berörda API:er