As informações do usuário nos mailto:
URIs são comparadas
Anteriormente, Uri não comparava as informações do usuário ao comparar duas Uri
instâncias para igualdade. No entanto, esse comportamento não é intuitivo no caso de mailto:
URIs. Com essa alteração, Uri.Equals o ==
operador agora considera as informações do usuário ao comparar URIs.
Comportamento anterior
Antes do .NET 8, ambas as comparações a seguir retornavam 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.
Novo comportamento
A partir do .NET 8, a primeira comparação ainda retorna true
, mas a segunda comparação (de mailto
URIs) retorna 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.
Versão introduzida
.NET 8
Tipo de alteração interruptiva
Esta é uma alteração comportamental.
Motivo da alteração
O comportamento anterior era inesperado e pouco intuitivo.
Ação recomendada
Se você quiser comparar apenas a parte do host dos endereços de email, compare apenas os Uri.Host membros.