클래스 NativeMethods는 .NET에서 특별히 처리됩니까?
-
22-07-2019 - |
문제
https://msdn.microsoft.com/en-us/library/ms182161.aspx
이 PAGE에 설명 된 세 클래스는 .NET 프레임 워크에서 특별히 처리됩니까? (NativeMethods, SafenativeMethods 및 UnsafenativeMethods)
내가 묻는 이유는 NativeMethods 클래스의 범주를 만드는 것이 괜찮은지 궁금합니다. 예를 들어:
ComNativeMethods
User32NativeMethods
OleStorageNativeMethods
해결책
요구 사항이 아닌 컨벤션입니다. CLR에 반영하고 거기에있는 코드를 살펴보면 종종 NativeMethods 클래스 내에서 P/호출 코드가 표시됩니다. FXCOP은 P/호출 코드를 이와 같은 클래스에 넣는 것이 좋습니다.
다른 팁
그것은 당신이 *nativemethods라는 클래스에 p/호출 방법을 배치해야한다고 말하는 규칙 일 뿐이지 만, 자신의 방식으로 그것을하지 못하게하는 기술적 제약은 없습니다 ...
수업의 이름을 그렇게 이름을 지정할 수 있지만 CA1060 경고 경고를 계속 받게됩니다. 이 경고는 귀하가 컨벤션을 따르지 않음을 나타냅니다. 따라서이 경고를 방지하려면 P/호출 방법이있는 클래스를 명명 할 때 컨벤션을 따라야합니다. P/호출 메소드를 분류하려면 네임 스페이스를 사용할 수 있습니다. 예를 들어:
- myproject.com.nativeMethods
- myProject.user32.nativeMethods
- myProject.olestorage.nativeMethods
그들은 CLR에 의해 특별히 처리되지 않습니다. NativeMethods, SafenativeMethods 또는 UnsafenativeMethods라는 클래스 내부에서 P/호출을하는 것이 좋습니다.
어셈블리에서 FXCOP를 실행하면이 추천이 진행되는 것을 볼 수 있습니다.