Partager via


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

L’analyseur marshalleur personnalisé a changé pour exiger que tous les modes de marshalage axés sur les éléments répondent aux formes managées et non managées.

Comportement précédent

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

Nouveau comportement

À compter de .NET 8, SYSLIB1057 est signalé pour les marshalleurs personnalisés avec MarshalMode.ElementIn ou MarshalMode.ElementOut qui n’ont pas à la fois une méthode ConvertToUnmanaged et ConvertToManaged.

Version introduite

.NET 8 RC 1

Type de changement cassant

Ce changement peut affecter la compatibilité source.

Raison du changement

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

Ajoutez une méthode ConvertToManaged et ConvertToUnmanaged au type marshalleur.

API affectées