Parameternamen in .NET 6 geändert
Einige Parameternamen wurden so geändert, dass sie zwischen Referenz- und Implementierungsassemblys konsistent sind. Die meisten Änderungen wurden an den Referenzassemblys, ein paar jedoch an den Implementierungsassemblys vorgenommen.
Vorheriges Verhalten
Einige Parameternamen in Referenzassemblys unterschieden sich von den entsprechenden Parametern in der Implementierungsassembly. Dies kann Probleme bei der Verwendung von benannten Argumenten und Reflexion verursachen.
Neues Verhalten
In .NET 6 wurden diese nicht übereinstimmenden Parameternamen aktualisiert, damit sie in den Referenz- und Implementierungsassemblys konsistent sind.
In der folgenden Tabelle sind die APIs und Parameternamen aufgeführt, die sich geändert haben. Darüber hinaus wurden einige Parameternamen für Stream
-abgeleitete Typen geändert.
Grund für die Änderung
- In den Fällen, in denen die Namen der Referenzassemblyparameter geändert wurden, wurden die neuen Namen als besser geeignet oder lesbar sowie als minimale Breaking Changes eingestuft.
- In den Fällen, in denen die Namen von Laufzeitparametern geändert wurden, um plattformübergreifende Konsistenz oder Konsistenz mit Referenzassemblys zu erzielen, entspricht die Laufzeitimplementierung jetzt der öffentlichen API und der Dokumentation für die Methode.
Eingeführt in Version
.NET 6
Empfohlene Maßnahme
Wenn aufgrund der Änderung eines Parameternamens ein Compilerfehler auftritt, aktualisieren Sie den Parameternamen entsprechend.
Wenn Sie die Laufzeitreflexion zum Untersuchen von Methoden einsetzen und eine Abhängigkeit von den Parameternamen verwendet haben, aktualisieren Sie den Code, sodass die neuen Parameternamen verwendet werden.
Betroffene APIs
- Microsoft.VisualBasic.Strings.InStr(Int32, String, String, CompareMethod)
- System.Attribute.GetCustomAttributes(MemberInfo, Type)
- System.Attribute.GetCustomAttributes(MemberInfo, Type, Boolean)
- System.Collections.Generic.SortedList<TKey,TValue>.System.Collections.ICollection.CopyTo(Array, Int32)
- System.IO.StreamWriter.WriteLine(ReadOnlySpan<Char>)
- System.IO.FileStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)
- System.IO.FileStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)
- System.IO.MemoryStream.Read(Span<Byte>)
- System.IO.MemoryStream.ReadAsync(Memory<Byte>, CancellationToken)
- System.IO.MemoryStream.Write(ReadOnlySpan<Byte>)
- System.IO.MemoryStream.WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)
- System.IO.UnmanagedMemoryStream.Read(Span<Byte>)
- System.IO.UnmanagedMemoryStream.Write(ReadOnlySpan<Byte>)
- System.Numerics.Vector.Narrow
- System.Numerics.Vector.Widen
- System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest.ProcessResponse(ReadOnlyMemory<Byte>, Int32)
- System.Security.Cryptography.Pkcs.Rfc3161TimestampToken.TryDecode(ReadOnlyMemory<Byte>, Rfc3161TimestampToken, Int32)
- System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo.Rfc3161TimestampTokenInfo(Oid, Oid, ReadOnlyMemory<Byte>, ReadOnlyMemory<Byte>, DateTimeOffset, Nullable<Int64>, Boolean, Nullable<ReadOnlyMemory<Byte>>, Nullable<ReadOnlyMemory<Byte>>, X509ExtensionCollection)
- System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo.TryDecode(ReadOnlyMemory<Byte>, Rfc3161TimestampTokenInfo, Int32)
- System.Security.Cryptography.Pkcs.SignerInfo.AddUnsignedAttribute(AsnEncodedData)
- System.Security.Cryptography.Pkcs.SignerInfo.RemoveUnsignedAttribute(AsnEncodedData)
- System.Security.Permissions.PrincipalPermission.Equals(Object)
- System.Security.Policy.UrlMembershipCondition.Equals(Object)
- DBDataPermission(DBDataPermission)
- DBDataPermission(DBDataPermissionAttribute)
- DBDataPermission(PermissionState, Boolean)
- System.Data.Common.DBDataPermission.FromXml(SecurityElement)
- System.Data.Common.DBDataPermission.Union(IPermission)