カスタム マーシャラーには追加のメンバーが必要
カスタム マーシャラー アナライザーは、マネージドからアンマネージドとアンマネージドからマネージドの両方の形式を満たすために、すべての要素に重点を置いたマーシャル モードを必要とするように変更されました。
以前の動作
MarshalMode.ElementIn
を使用するカスタム マーシャラーには、ConvertToUnmanaged
メソッドのみが必要です。 MarshalMode.ElementOut
を使用するカスタム マーシャラーには、ConvertToManaged
メソッドのみが必要です。
新しい動作
.NET 8 以降では、SYSLIB1057 は、ConvertToUnmanaged
と ConvertToManaged
メソッドの両方を持たない MarshalMode.ElementIn
または MarshalMode.ElementOut
を使用するカスタム マーシャラーに対して報告されます。
導入されたバージョン
.NET 8 RC 1
破壊的変更の種類
この変更はソースの互換性に影響を与える可能性があります。
変更理由
ソース生成 COM の導入により、マーシャラーは、マネージドからアンマネージドとアンマネージドからマネージドの両方のシナリオで要素シナリオに使用できます。 この変更により、アナライザーが更新され、マーシャラーが使用される可能性のあるすべてのシナリオでユーザー定義マーシャラーに必要なメンバーが確実に含まれるようになります。
推奨される操作
マーシャラー型に ConvertToManaged
と ConvertToUnmanaged
メソッドの両方を追加します。
影響を受ける API
.NET