https://msdn.microsoft.com/en-us/library/ms182161.aspx
此页面上描述的三个类是否在.NET Framework中专门处理? (NativeMethods,SafeNativeMethods和UnsafeNativeMethods)
我问的原因是我想知道创建NativeMethods类的类别是否正常。例如:
ComNativeMethods
User32NativeMethods
OleStorageNativeMethods
答案 0 :(得分:8)
这是一项惯例,而非要求。如果您反思CLR并查看其中的代码,您通常会在NativeMethods类中看到P / Invoke代码。我相信FxCop会建议你把P / Invoke代码放在这样的类中,如果遇到它的话。
答案 1 :(得分:3)
这只是一个惯例,说你应该在名为* NativeMethods的类中放置p / invoke方法,但是没有技术限制来阻止你以自己的方式去做...
答案 2 :(得分:2)
您可以这样命名您的课程,但您将继续获得代码分析警告CA1060。此警告表示您未遵循惯例。因此,为了防止出现此警告,您需要在命名具有P / Invoke方法的类时遵循约定。如果要对P / Invoke方法进行分类,可以使用名称空间。例如:
答案 3 :(得分:1)
它们不是由CLR专门处理的。我们建议您将P / Invokes放在名为NativeMethods,SafeNativeMethods或UnsafeNativeMethods的类中。
如果在程序集上运行FxCop,您会看到此建议发挥作用。