Freigeben über


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.

Fügen Sie dem Marshallertyp sowohl eine ConvertToManaged- als auch eine ConvertToUnmanaged-Methode hinzu.

Betroffene APIs