【Attribute笔记】 在C#编程语言中,Attribute是一种特殊类型的类,它允许我们在代码中添加元数据,即关于代码本身的附加信息。这些元数据在编译时被处理,并且可以在运行时通过反射来访问和利用。Attribute的实例化不同于常规类,它们在编译时就被创建,而不是在程序运行时。 1. Attribute实例化与应用: - Attribute通常出现在代码元素(如类、方法、属性等)之前,以`[AttributeName]`的形式声明。 - 多个Attribute可以应用于同一个元素,它们之间使用逗号分隔。 - 例如:`[AttributeUsage], [Flags]`或`[Flags, AttributeUsageAttribute]`都是有效的Attribute应用方式。 - `AttributeUsage`用于指定自定义Attribute可以应用到哪些代码元素(如Class、All等),而`Flags`则用于定义枚举类型作为位标志。 2. Attribute分类: - 配件属性:在.NET工程中,`AssemblyInfo.cs`文件包含了项目的基本元数据,如版本信息、版权等,这些都是系统在编译时使用的。 - 上下文属性:主要用于对象远程调用和事务管理,如COM+组件服务和MTS。 3. 常用内置Attribute: - `AttributeUsage`: 控制自定义Attribute如何应用到目标元素,参数包括`AttributeTargets`(应用的目标)、`AllowMultiple`(是否允许多个实例)、`Inherited`(是否可继承)和`ValidOn`(有效应用位置)。 - `Flags`: 标记枚举值为位标志,允许组合使用,如`Animal.Dog | Animal.Cat`。 - `DllImport`: 允许C#代码调用非托管(如C/C++库)的函数,通过指定DLL名称和函数原型。 - `Serializable`: 标记对象为可序列化的,这意味着对象的状态可以转换为数据流,便于存储和网络传输。 4. 序列化与反序列化: - `Serializable`特性标记的对象可以被序列化成XML、二进制或其他格式,以便保存或在网络上传输。 - 反序列化则是将已序列化的数据恢复为原来的对象状态,这在数据持久化、跨进程通信等方面非常有用。 5. 使用示例: - `DllImport`的例子展示了如何调用Windows API的`MessageBox`函数: ```csharp [DllImport("User32.dll")] public static extern int MessageBox(int hParent, string msg, string caption, int type); ``` - 在`Main`方法中调用`MessageBox`,显示一个对话框。 Attribute在.NET框架中扮演着重要的角色,它们提供了向代码添加额外信息的能力,从而扩展了语言的功能。理解并熟练使用Attribute能够帮助开发者更好地实现特定功能,如依赖注入、数据验证、元数据注解等。通过自定义Attribute,开发者可以创建自己的元数据标记,以满足特定项目的需要。






















剩余12页未读,继续阅读


- 粉丝: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 国家网络安全宣传周活动心得.doc
- 数据结构与算法(5)ppt课件.ppt
- 电子商务的求职信范文.doc
- 最新国家开放大学电大《文学英语赏析》网络核心课形考网考作业及答案.pdf
- 锅炉过热气温控制MATLAB及控制系统仿真.doc
- 网络系统集成概述.docx
- 从技术专家到领导者:管理转型指南
- 软件项目验收报告模板.doc
- 游戏开发团队建设培养.pptx
- 医学科研数据挖掘概述.ppt
- 销售项目管理LTC.ppt
- 有关计算机求职信三篇.docx
- 武汉大学网络营销()网络营销产品层次.pptx
- 中职-计算机基础教学工作总结.docx
- 无线网络勘察技术.ppt
- 电子商务项目成本效益分析方法研究.doc


