請避免呼叫有問題的方法
更新:2007 年 11 月
型別名稱 |
AvoidCallingProblematicMethods |
CheckId |
CA2001 |
分類 |
Microsoft.Reliability |
中斷變更 |
非中斷 |
原因
成員呼叫了可能有危險或問題的方法。
規則描述
請避免進行非必要且可能有危險的方法呼叫。
當成員呼叫下列其中一個方法時,便會引發這項規則:
Type.InvokeMember withBindingFlags.NonPublic
CoSetProxyBlanket (Ole32)
CoInitializeSecurity (Ole32)
避免在 Managed 程式碼中使用 CoSetProxyBlanket 的原因
等到使用者程式碼開始在 Managed 處理序中執行時,才要正常呼叫 CoSetProxyBlanket 就已經太遲了。CLR 會採取初始設定動作,而這些動作可能會 (但也可能不會) 導致使用者 P/Invoke 無法執行成功。
如果您不需要對 Managed 應用程式呼叫 CoSetProxyBlanket,建議您使用機器碼 (C++) 可執行檔啟動處理序,並於機器碼中呼叫 CoSetProxyBlanket,然後在處理序中啟動 Managed 程式碼應用程式 (請務必指定執行階段版本號碼)。
如何修正違規
若要修正此規則的違規情形,請移除或替換對有危險或問題之方法的呼叫。
隱藏警告的時機
請勿隱藏此規則的警告。