문제

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를 실행하면이 추천이 진행되는 것을 볼 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top