https://msdn.microsoft.com/en-us/library/ms182161.aspx
都在这所描述的三类分页.NET Framework中的特殊处理? (NativeMethods,SafeNativeMethods和UnsafeNativeMethods)
我问的原因是我想知道,如果它是正常的创建NativeMethods类的类别。 例如:
ComNativeMethods
User32NativeMethods
OleStorageNativeMethods
https://msdn.microsoft.com/en-us/library/ms182161.aspx
都在这所描述的三类分页.NET Framework中的特殊处理? (NativeMethods,SafeNativeMethods和UnsafeNativeMethods)
我问的原因是我想知道,如果它是正常的创建NativeMethods类的类别。 例如:
ComNativeMethods
User32NativeMethods
OleStorageNativeMethods
这是一个惯例,并不是必需的。 如果反映到CLR和看看代码在那里,你会经常看到NativeMethods类中的P / Invoke代码。 我相信的FxCop将建议把你的P / Invoke代码在一个类这样如果遇到它。
这只是一个约定,说你应该把的P / Invoke在名为* NativeMethods类的方法,但没有技术的限制,以防止你做你自己的路......
你能说出你的类这种方式,但你会继续得到代码分析警告CA1060。 此警告表明你没有关注的惯例。 因此,要防止这种警告,你需要命名具有的P / Invoke方法的类时要遵循的惯例。 如果你想你的分类的P / Invoke方法,你可以使用命名空间。 例如:
它们不是由CLR特殊处理。 它只是推荐的做法,对你的P /一类名为NativeMethods,SafeNativeMethods,或UnsafeNativeMethods内调用。
如果你对你的组件运行的FxCop你会看到这个建议开始发挥作用。