CA1420: プロパティ、型、または属性にはランタイム マーシャリングが必要です
プロパティ | 値 |
---|---|
ルール ID | CA1420 |
Title | プロパティ、型、または属性にはランタイム マーシャリングが必要です |
[カテゴリ] | 相互運用性 |
修正が中断ありか中断なしか | あり |
.NET 8 では既定で有効 | 警告として |
原因
ランタイム マーシャリングを必要とするコード機能が使用され、ランタイム マーシャリングが明示的に無効になっています。
規則の説明
ランタイム マーシャリングが無効になっているときにランタイム マーシャリングを必要とする機能を使用すると、実行時例外が発生します。
違反の修正方法
ランタイム マーシャリングを有効にするか、ランタイム マーシャリングを必要とするコードを削除します。
どのようなときに警告を抑制するか
この規則による警告は抑制しないでください。
例
次のコード スニペットは CA1420 の違反を示しています:
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
[assembly: DisableRuntimeMarshalling]
class C
{
// Violates rule CA1420.
[DllImport("NativeLibrary", SetLastError = true)]
public static extern void MyMethod ();
}
Imports System.Runtime.InteropServices
Imports System.Runtime.CompilerServices
<Assembly: DisableRuntimeMarshalling>
Class C
' Violates rule CA1420.
<DllImport("NativeLibrary", SetLastError:=True)>
Public Shared Sub MyMethod()
'...
End Sub
End Class
この違反を修正するには、アセンブリの DisableRuntimeMarshallingAttribute を削除します。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET