문제가 있는 메서드는 호출하지 마십시오.
업데이트: 2007년 11월
TypeName |
AvoidCallingProblematicMethods |
CheckId |
CA2001 |
범주 |
Microsoft.Reliability |
변경 수준 |
주요 변경 아님 |
원인
멤버에서 잠재적 위험이나 문제가 있는 메서드를 호출합니다.
규칙 설명
불필요하고 잠재적 위험이 있는 메서드는 호출하지 마십시오.
이 규칙은 멤버가 다음 메서드 중 하나를 호출할 때 발생합니다.
Type.InvokeMember with BindingFlags.NonPublic
CoSetProxyBlanket (Ole32)
CoInitializeSecurity (Ole32)
관리 코드에서 CoSetProxyBlanket을 사용하면 안 되는 이유
사용자 코드가 관리 프로세스에서 실행되는 시점이 되면 CoSetProxyBlanket을 안정적으로 호출하기에는 너무 늦습니다. CLR은 사용자 P/Invoke의 성공을 방해하거나 방해하지 않을 수 있는 초기화 작업을 수행합니다.
관리되는 응용 프로그램에 대해 CoSetProxyBlanket을 호출해야 하는 경우에는 네이티브 코드(C++) 실행 파일을 사용하여 프로세스를 시작하고, 네이티브 코드에서 CoSetProxyBlanket을 호출한 다음, 프로세스에서 관리 코드 응용 프로그램을 시작하는 것이 좋습니다. 런타임 버전 번호를 지정해야 합니다.
위반 문제를 해결하는 방법
이 규칙 위반 문제를 해결하려면 위험하거나 문제가 있는 메서드에 대한 호출을 제거하거나 바꿉니다.
경고를 표시하지 않는 경우
이 규칙에서는 경고를 표시해야 합니다.