非托管代码方法的命名约定
2007-12-14 08:57
169 查看
经常看到很多Assembly内部都使用了非托管代码,而且命名混乱,其实MSDN已经给出了相关的建议:
为了给非托管代码方法命名,目前已建立了一个非常有用的约定,强烈建议您采用该约定。所有非托管代码方法被分为三个类别:safe、native 和 unsafe。这些关键字可以用作类名,各种非托管代码入口点都分别定义到了这三个类中。在源代码中,应当将这些关键字添加到类名中,例如,就像在
为了给非托管代码方法命名,目前已建立了一个非常有用的约定,强烈建议您采用该约定。所有非托管代码方法被分为三个类别:safe、native 和 unsafe。这些关键字可以用作类名,各种非托管代码入口点都分别定义到了这三个类中。在源代码中,应当将这些关键字添加到类名中,例如,就像在
Safe.GetTimeOfDay,
Native.Xyz或
Unsafe.DangerousAPI中一样。这些关键字中的每一个都为使用该类的开发人员提供了有益的安全信息,如下表所示。
关键字 | 安全注意事项 |
---|---|
safe | 对于任何代码,即使是恶意代码,进行调用都完全无害。可以像其他托管代码一样使用。例如,获取时间的功能通常是安全的。 比如:System.Windows.Forms.SafeNativeMethods |
native | 不受安全性影响的;即,需要非托管代码权限才能调用的非托管代码。检查安全性,以阻止未经授权的调用方。 比如:System.Windows.Forms.NativeMethods |
unsafe | 潜在的危险非托管代码入口点,安全性受影响。使用这种非托管代码时,开发人员应当最为小心, 要确保采取其他防范措施以避免出现安全漏洞。开发人员必须认真负责,因为此关键字重写安全系统。 比如:System.Windows.Forms.UnsafeNativeMethods |
相关文章推荐
- Scala学习笔记7--运算符方法命名约定
- 使用ObjectDataSource注意DeleteMethod、UpdateMethod、Insert等方法中参数的命名约定
- scala学习手记38 - 方法命名约定和for表达式
- 未被管理的代码方法的命名约定
- 扩展方法和命名约定
- 使用ObjectDataSource注意DeleteMethod、UpdateMethod、Insert等方法中参数的命名约定
- scala学习手记38 - 方法命名约定和for表达式
- c# 获取命名空间 类名 方法名
- VBScript变量名、对象命名约定
- iOS项目的完整重命名方法图文教程
- Google C++编程命名约定
- 织梦dedecms 自定义修改文章命名规则方法
- Java 命名约定
- 获取到某一方法的调用者的类名、方法名、命名空间(转)
- C#命名约定
- C#自定义命名空间与使用自定义的命名空间方法 转载 百度空间
- 数据库别名命名方法
- Predictable Network Interface Names(网卡命名的问题,改为eth0的方法)
- 委托(2.命名方法)
- 禁止hibernate启动是自动生成CRUD语句和hibernate实现命名约定