更新 : 2007 年 11 月
TypeName |
AvoidCallingProblematicMethods |
CheckId |
CA2001 |
カテゴリ |
Microsoft.Reliability |
互換性に影響する変更点 |
なし |
原因
メンバが危険性または問題のあるメソッドを呼び出します。
規則の説明
不要または危険性のあるメソッド呼び出しを使用しないでください。
この規則は、メンバが次のいずれかのメソッドを呼び出す場合に適用されます。
Type.InvokeMember withBindingFlags.NonPublic
CoSetProxyBlanket (Ole32)
CoInitializeSecurity (Ole32)
マネージ コードで CoSetProxyBlanket を使用してはならない理由
ユーザー コードがマネージ コードで実行を開始する時点では、信頼して CoSetProxyBlanket を呼び出すには遅すぎます。CLR が初期化処理を実行することにより、ユーザーの P/Invoke が成功しないことがあります。
マネージ アプリケーションに対して CoSetProxyBlanket を呼び出す必要がある場合は、ネイティブ コード (C++) の実行可能ファイルを使用してプロセスを開始し、ネイティブ コードで CoSetProxyBlanket を呼び出してから、マネージ コード アプリケーションをインプロセスで開始することをお勧めします (必ずランタイムのバージョン番号を指定してください)。
違反の修正方法
この規則違反を修正するには、危険性または問題のあるメソッドの呼び出しを削除するか、別のメソッドに置き換えます。
警告を抑制する状況
この規則による警告は抑制しないでください。