Partager via


Les marshallers personnalisés nécessitent des membres supplémentaires

L’analyseur de marshaleur personnalisé a été modifié pour exiger que tous les modes de marshaling axés sur les éléments répondent à la fois aux formes managée-vers-non-managée et non-managée-vers-managée.

Comportement précédent

Les marshaleurs personnalisés avec MarshalMode.ElementIn n’avaient besoin que d’une méthode ConvertToUnmanaged. Les marshaleurs personnalisés avec MarshalMode.ElementOut n’avaient besoin que d’une méthode ConvertToManaged.

Nouveau comportement

À partir de .NET 8, SYSLIB1057 est signalé pour les marshaleurs personnalisés avec MarshalMode.ElementIn ou MarshalMode.ElementOut qui ne possèdent pas à la fois une méthode ConvertToUnmanaged et une méthode ConvertToManaged.

Version introduite

.NET 8 RC 1

Type de changement cassant

Cette modification peut affecter la compatibilité source .

Raison de la modification

Avec l’introduction de COM généré par la source, les marshaleurs peuvent être utilisés dans des scénarios ciblant les éléments, à la fois du managé vers le non-managé et du non-managé vers le managé. Cette modification met à jour l’analyseur pour s’assurer que les marshallers définis par l’utilisateur ont les membres requis pour tous les scénarios où le marshaller peut être utilisé.

Ajoutez à la fois une méthode ConvertToManaged et une méthode ConvertToUnmanaged au type de marshaleur.

API affectées