이식성 및 상호 운용성 규칙
이식성 규칙은 다양한 플랫폼에서 이식성을 지원합니다. 상호 운용성 규칙은 COM 클라이언트와 상호 작용을 지원합니다.
단원 내용
규칙 | 설명 |
---|---|
CA1401: P/Invoke는 노출되지 않아야 합니다. | public 형식의 public 또는 protected 메서드에 System.Runtime.InteropServices.DllImportAttribute 특성(Visual Basic의 선언 키워드에서 구현함)이 있습니다. 이러한 메서드는 노출되지 않아야 합니다. |
CA1416: 플랫폼 호환성 유효성 검사 | 구성 요소에서 플랫폼 종속 API를 사용하면 모든 플랫폼에서 코드가 더 이상 작동하지 않습니다. |
CA1417: P/Invokes에 대한 문자열 매개 변수에서 OutAttribute 를 사용하지 마세요 |
OutAttribute 를 사용하여 값으로 전달된 문자열 매개 변수는 문자열이 인턴 지정된 문자열인 경우 런타임을 불안정하게 만들 수 있습니다. |
CA1418: 유효한 플랫폼 문자열 사용 | 플랫폼 호환성 분석기에는 유효한 플랫폼 이름과 버전이 필요합니다. |
CA1419: 'System.Runtime.InteropServices.SafeHandle'에서 파생된 구체적인 형식의 포함 형식만큼 표시되는 매개 변수가 없는 생성자를 제공합니다. | 에서 파생된 System.Runtime.InteropServices.SafeHandle 형식에 대한 포함 형식만큼 표시되는 매개 변수가 없는 생성자를 제공하면 원본에서 생성된 interop 솔루션의 성능과 사용이 향상됩니다. |
CA1420: 속성, 유형 또는 특성에는 런타임 마샬링이 필요합니다. | 런타임 마샬링을 사용하지 않도록 설정한 상태로 런타임 마샬링이 필요한 기능을 사용하면 런타임 예외가 발생합니다. |
CA1421: DisableRuntimeMarshallingAttribute가 적용될 때 메서드는 런타임 마샬링을 사용합니다. | 메서드는 런타임 마샬링을 사용하며 런타임 마샬링이 명시적으로 사용하지 않도록 설정됩니다. |
CA1422: 플랫폼 호환성 유효성 검사 | 해당 OS(버전)에서 연결할 수 있는 호출 사이트에서 지정된 OS(버전)에 사용되지 않는 API를 호출하는 것은 권장되지 않습니다. |
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET