هي الطبقة NativeMethods التعامل مع خصيصا في .الشبكة ؟

StackOverflow https://stackoverflow.com/questions/1445117

سؤال

https://msdn.microsoft.com/en-us/library/ms182161.aspx

هي ثلاث فئات وصفها على هذا المقسم التعامل مع خصيصا في .NET Framework ؟ (NativeMethods, SafeNativeMethods و UnsafeNativeMethods)

سبب سؤالي هو أنني أتساءل عما إذا كان هو بخير إنشاء فئات NativeMethods الطبقات.على سبيل المثال:

ComNativeMethods
User32NativeMethods
OleStorageNativeMethods
هل كانت مفيدة؟

المحلول

وانها اتفاقية، ليس شرطا. إذا كنت تعكس في CLR ونلقي نظرة على التعليمات البرمجية في هناك، عليك كثيرا ما نرى كود P / استدعاء داخل فئة NativeMethods. وأعتقد أن FxCop سيوصي وضع الخاص بك P / استدعاء التعليمات البرمجية في فئة مثل هذا إذا كان يصادف ذلك.

نصائح أخرى

وانها مجرد الاتفاقية التي تقول يجب وضع ف / استدعاء أساليب في صفوف اسمه * NativeMethods، ولكن لا يوجد عائق تقني لتمنعك من فعل ذلك على طريقتك الخاصة ...

يمكنك تسمية الفصول الدراسية بهذه الطريقة, ولكن سوف تستمر في الحصول على تحليل رمز تحذير CA1060.هذا التحذير يشير إلى أنك لا تتبع الاتفاقية.وذلك لمنع هذا التحذير, تحتاج إلى متابعة الاتفاقية عند تسمية فئات P/أساليب الاحتجاج.إذا كنت ترغب في تصنيف P/أساليب الاحتجاج ، يمكنك استخدام مساحات الأسماء.على سبيل المثال:

  • MyProject.Com.NativeMethods
  • MyProject.User32.NativeMethods
  • MyProject.OleStorage.NativeMethods

لا يتم التعامل مع انهم خصيصا من قبل CLR. انها ببساطة أوصى الممارسة أن يكون لديك P / يتضرع داخل فئة المسمى NativeMethods، SafeNativeMethods، أو UnsafeNativeMethods.

وسترى هذه التوصية تأتي في اللعب إذا قمت بتشغيل FxCop على المجالس الخاصة بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top