| 속성 | 값 |
|---|---|
| 규칙 ID | CA1420 |
| 제목 | 속성, 형식 또는 특성에는 런타임 마샬링이 필요합니다. |
| 범주 | 상호 운용성 |
| 수정 사항이 주요 변경인지 여부 | 주요 변경 |
| .NET 10에서 기본적으로 사용하도록 설정 | 경고로 |
원인
런타임 마샬링이 필요한 코드 기능이 사용되고 런타임 마샬링이 명시적으로 사용하지 않도록 설정됩니다.
규칙 설명
런타임 마샬링을 사용하지 않도록 설정할 때 런타임 마샬링이 필요한 기능을 사용하면 런타임 예외가 발생합니다.
위반 문제를 해결하는 방법
런타임 마샬링을 사용하도록 설정하거나 런타임 마샬링이 필요한 코드를 제거합니다.
경고를 표시하지 않는 경우
이 규칙의 경고는 표시해야 합니다.
예
다음 코드 조각은 CA1420의 위반을 보여 줍니다.
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[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에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET