カスタム マーシャラーには追加のメンバーが必要

カスタム マーシャラー アナライザーは、マネージドからアンマネージドとアンマネージドからマネージドの両方の形式を満たすために、すべての要素に重点を置いたマーシャル モードを必要とするように変更されました。

以前の動作

MarshalMode.ElementIn を使用するカスタム マーシャラーには、ConvertToUnmanaged メソッドのみが必要です。 MarshalMode.ElementOut を使用するカスタム マーシャラーには、ConvertToManaged メソッドのみが必要です。

新しい動作

.NET 8 以降では、SYSLIB1057 は、ConvertToUnmanagedConvertToManaged メソッドの両方を持たない MarshalMode.ElementIn または MarshalMode.ElementOut を使用するカスタム マーシャラーに対して報告されます。

導入されたバージョン

.NET 8 RC 1

破壊的変更の種類

この変更はソースの互換性に影響を与える可能性があります。

変更理由

ソース生成 COM の導入により、マーシャラーは、マネージドからアンマネージドとアンマネージドからマネージドの両方のシナリオで要素シナリオに使用できます。 この変更により、アナライザーが更新され、マーシャラーが使用される可能性のあるすべてのシナリオでユーザー定義マーシャラーに必要なメンバーが確実に含まれるようになります。

マーシャラー型に ConvertToManagedConvertToUnmanaged メソッドの両方を追加します。

影響を受ける API