This product is not supported for your selected Datadog site. ().
이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다. 현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우 언제든지 연락주시기 바랍니다.
Metadata
ID:csharp-best-practices/platform-compatibility
Language: C#
Severity: Warning
Category: Best Practices
Description
The ‘Validate platform compatibility’ rule is an important static analysis rule in C# that ensures your code is compatible with the platforms it is intended to run on. This rule checks for platform compatibility attributes like SupportedOSPlatform and UnsupportedOSPlatform in your code, which indicate the specific platforms or versions of platforms on which the annotated code elements are supported or unsupported, respectively.
Ignoring this rule can lead to runtime errors if your code attempts to call APIs that are not supported on the host operating system. For example, a method marked with [UnsupportedOSPlatform("windows")] will throw an exception if called on a Windows machine.
To comply with this rule, always mark your platform-specific APIs with the appropriate attributes and ensure that your code does not call any APIs that are not supported on the current platform. Use the RuntimeInformation.IsOSPlatform method to check the platform at runtime before calling any platform-specific APIs. Additionally, consider providing alternative implementations for different platforms to improve the portability of your code.
// An API supported only on Linux.[SupportedOSPlatform("linux")]publicvoidLinuxOnlyApi(){}// API is supported on Windows, iOS from version 14.0, and MacCatalyst from version 14.0.[SupportedOSPlatform("windows")][SupportedOSPlatform("ios14.0")]// MacCatalyst is a superset of iOS, therefore it's also supported.publicvoidSupportedOnWindowsIos14AndMacCatalyst14(){}publicvoidCaller(){LinuxOnlyApi();// This call site is reachable on all platforms. 'LinuxOnlyApi()' is only supported on: 'linux'SupportedOnWindowsIos14AndMacCatalyst14();// This call site is reachable on all platforms. 'SupportedOnWindowsIos14AndMacCatalyst14()'// is only supported on: 'windows', 'ios' 14.0 and later, 'MacCatalyst' 14.0 and later.}
원활한 통합. Datadog Code Security를 경험해 보세요
Datadog Code Security
이 규칙을 사용해 Datadog Code Security로 코드를 분석하세요
규칙 사용 방법
1
2
rulesets:- csharp-best-practices # Rules to enforce C# best practices.
리포지토리 루트에 위의 내용을 포함하는 static-analysis.datadog.yml을 만듭니다
무료 IDE 플러그인을 사용하거나 CI 파이프라인에 Code Security 검사를 추가합니다