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é.
Action recommandée
Ajoutez une méthode ConvertToManaged
et ConvertToUnmanaged
au type marshalleur.