经常看到很多Assembly内部都使用了非托管代码,而且命名混乱,其实MSDN已经给出了相关的建议:
为了给非托管代码方法命名,目前已建立了一个非常有用的约定,强烈建议您采用该约定。所有非托管代码方法被分为三个类别:safe、native 和 unsafe。这些关键字可以用作类名,各种非托管代码入口点都分别定义到了这三个类中。在源代码中,应当将这些关键字添加到类名中,例如,就像在 Safe.GetTimeOfDay
, Native.Xyz
或 Unsafe.DangerousAPI
中一样。这些关键字中的每一个都为使用该类的开发人员提供了有益的安全信息,如下表所示。
关键字 | 安全注意事项 |
---|---|
safe | 对于任何代码,即使是恶意代码,进行调用都完全无害。可以像其他托管代码一样使用。例如,获取时间的功能通常是安全的。 |
native | 不受安全性影响的;即,需要非托管代码权限才能调用的非托管代码。检查安全性,以阻止未经授权的调用方。 |
unsafe | 潜在的危险非托管代码入口点,安全性受影响。使用这种非托管代码时,开发人员应当最为小心, |