Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Als Teil der in System.Linq.Queryable implementierten neuen Funktionen wurden zusätzliche öffentliche Methodenüberladungen zu https://github.com/dotnet/runtime/pull/47231 hinzugefügt. Wenn Ihr Reflektionscode beim Nachschlagen von Methoden nicht ausreichend robust ist, können diese Ergänzungen Ihre Implementierungen des Abfrageanbieters stören.
Änderungsbeschreibung
In .NET 6 wurden den im Abschnitt "Betroffene APIs " aufgeführten Methoden neue Überladungen hinzugefügt. Reflexionscode, wie z. B. der im folgenden Beispiel gezeigte, kann durch diese Ergänzungen beschädigt werden:
typeof(System.Linq.Queryable)
.GetMethods(BindingFlags.Public | BindingFlags.Static)
.Where(m => m.Name == "ElementAt")
.Single();
Dieser Spiegelungscode löst nun eine InvalidOperationException Nachricht mit einer ähnlichen Meldung aus: Sequence enthält mehr als ein Element.
Eingeführte Version
.NET 6
Grund für Änderung
Die neuen Überladungen wurden hinzugefügt, um die LINQ Queryable
-API zu erweitern.
Empfohlene Aktion
Wenn Sie ein Autor einer Abfrageanbieterbibliothek sind, stellen Sie sicher, dass Ihr Reflection-Code tolerant gegenüber Erweiterungen durch Methodenüberladung ist. Verwenden Sie beispielsweise eine Type.GetMethod Überladung, die die Parametertypen der Methode explizit akzeptiert.
Betroffene APIs
Neue Überladungen wurden für die folgenden Queryable-Erweiterungsmethoden hinzugefügt: