Benutzerdefinierte Marshaller erfordern zusätzliche Member
Das benutzerdefinierte Marshaller-Analysetool wurde dahingehend geändert, dass alle elementorientierten Marshallmodi sowohl den verwalteten-zu-unverwalteten als auch den unverwalteten-zu-verwalteten Formen entsprechen müssen.
Vorheriges Verhalten
Benutzerdefinierte Marshaller mit MarshalMode.ElementIn
benötigten nur eine ConvertToUnmanaged
-Methode. Benutzerdefinierte Marshaller mit MarshalMode.ElementOut
benötigten nur eine ConvertToManaged
-Methode.
Neues Verhalten
Ab .NET 8 wird SYSLIB1057 für benutzerdefinierte Marshaller mit MarshalMode.ElementIn
oder MarshalMode.ElementOut
, die nicht sowohl eine ConvertToUnmanaged
- als auch eine ConvertToManaged
-Methode haben, gemeldet.
Eingeführt in Version
.NET 8 RC 1
Typ des Breaking Changes
Diese Änderung kann sich auf die Quellkompatibilität auswirken.
Grund für die Änderung
Mit der Einführung des quellgenerierten COM können die Marshaller in Elementszenarien sowohl in verwalteten-zu-unverwalteten als auch in unverwalteten-zu-verwalteten Szenarien verwendet werden. Diese Änderung aktualisiert die Analyse, um sicherzustellen, dass benutzerdefinierte Marshaller die erforderlichen Member für alle Szenarien haben, in denen der Marshaller verwendet werden kann.
Empfohlene Maßnahme
Fügen Sie dem Marshallertyp sowohl eine ConvertToManaged
- als auch eine ConvertToUnmanaged
-Methode hinzu.