移植性と相互運用性の規則

移植性の規則は、異なるプラットフォーム間の移植性をサポートします。 相互運用性の規則は、COM クライアントとの対話をサポートします。

このセクションの内容

ルール 説明
CA1401: P/Invoke は参照可能になりません パブリック型のパブリック メソッドまたはプロテクト メソッドに、System.Runtime.InteropServices.DllImportAttribute 属性があります (Visual Basic では Declare キーワードでも実装されます)。 このようなメソッドは公開しないでください。
CA1416:プラットフォームの互換性を検証する プラットフォーム依存 API をコンポーネント上で使用すると、一部のプラットフォームでコードが動作しなくなります。
CA1417: P/Invokes の文字列パラメーターに OutAttribute を使用しません 文字列がインターン処理された文字列で、文字列パラメーターが OutAttribute の値で渡された場合、ランタイムが不安定になる可能性があります。
CA1418: 有効なプラットフォーム文字列を使用する プラットフォーム互換性アナライザーには、有効なプラットフォーム名とバージョンが必要です。
CA1419: 'System.Runtime.InteropServices.SafeHandle' から派生した具象型の包含型と同じように表示されるパラメーターなしのコンストラクターを指定します System.Runtime.InteropServices.SafeHandle から派生した型の包含型と同じように見えるパラメーターなしのコンストラクターを指定すると、ソース生成相互運用ソリューションのパフォーマンスと使用方法が向上します。
CA1420: プロパティ、型、または属性にはランタイム マーシャリングが必要です ランタイム マーシャリングが無効になっているときにランタイム マーシャリングを必要とする機能を使用すると、実行時例外が発生します。
CA1421: DisableRuntimeMarshallingAttribute が適用されている場合、メソッドにはランタイム マーシャリングを使う メソッドにランタイム マーシャリングを使い、ランタイム マーシャリングは明示的に無効にします。
CA1422: プラットフォームの互換性を検証する 特定の OS (バージョン) で古い API を、その OS (バージョン) から到達可能な呼び出しサイトから呼び出すことはお勧めしません。