- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
C#高级编程第九章C#特性编程
本章目标.NET特性的作用构建自定义特性(重点)使用晚期绑定反射特性构建可扩展的应用程序(难点)面向切面编程序AOP(难点)
本章任务构建和调用通用插件实现日志功能
特性特性是能够构建一组被特定的某些程序集理解的“关键字”特性的作用向程序中添加元数据。将一个或多个特性应用到整个程序集、模块或较小的程序元素(如类和属性)。与方法和属性相同的方式接受参数。使用反射检查自己的元数据或其他程序内的元数据。
预定义特性特性作用[CLSCompliant]强制被注释项遵从CLS。符合CLS的类型将确保无缝地跨越所有的.NET编程语言[DllImport]允许.NET代码调用任意非托管的C或C++基础类库,包括操作系统中的API。注意当与基于COM软件通信时,[DllImport]不能使用[Obsolete]标记一个不用的类或成员。如果其他程序员试图使用该项,他们将会收到一个描述出错信息的编译轚告[Serializabe]标记一个类或结构可以被“序列化”,怠味者它可以将当前状态持久化到数据流中[NonSerialized]指定类或结构中的某个字段不能在序列化过程中被持久化[WebMethod]标记一个方法可以通过HTTP请求调用,并且通知CLR将方法的返回值序列化为XML
.NET特性的作用使用特性的地方开发工具.NET基础类库使用特性[Serializable]publicclassStudent{[NonSerialized]stringStuNo=;stringCName=;stringClassName=;intAge=18;}该类可以保存到磁盘该字段不能被持久化这些字段要被持久化
.NET特性的作用特性简化符号Obsolete特性的定义[SerializableAttribute][ObsoleteAttribute(此类已过时!)]publicclassStudent{//...}这是原始写法,加了AttributepublicsealedclassObsoleteAttribute:Attribute{publicObsoleteAttribute();publicObsoleteAttribute(stringmessage);publicObsoleteAttribute(stringmessage,boolerror);publicboolIsError{get;}publicstringMessage{get;}}提供了几个构建函数
.NET特性使用要点特性是派生System.Attribute的类。特性导致嵌入的元数据。直到被其他代理反射,特性才发挥使用。特性在中用方括号来应用。
构建定义特性构建自定义特性使用自定义的特性publicsealedclassStudentDescriptionAttribute:System.Attribute{publicstringDescription{get;set;}publicStudentDescriptionAttribute(){}publicStudentDescriptionAttribute(stringdescription){Description=description;}}特性基类[Serializable][StudentDescription(Description=学生)]publicclassStudent{}[Serializable][StudentDescription(小学生)]publicclassPupil{}合法的合法的只有特性提供一个可写.NET的属性,命名属性的语法才是合法的
限制特性的使用定义了一个特性可能的目标值使用AttributeUsage特性来注释我们的自定义特性publicenumAttributeTargets{All,Assembly,Class,Calculator,Delegate,Enum,Event,Field,GenericParameter,Interface,Method,Module,Parameter,Property,ReturnValue,Struct}[AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct,Inherited=false)]publicsealedclassStudentDescri
您可能关注的文档
- 高三一轮优化方案复习六章讲.pptx
- 台式计算机炼铁有关英文冷却系统.pptx
- 2024年形势与政策第三讲-走好新时代科技自立自强之路.pdf
- 第五章-发展全过程人民民主-保障人民当家作主-2023春形势与政策.pptx
- 2024春形势与政策-走好新时代科技自立自强之路课件.pdf
- 第五章-发展全过程人民民主-保障人民当家作主-2023春形势与政策.pdf
- AI智能+智慧工厂厂区整体解决方案.pptx
- 2024春形势与政策-全面认识全过程人民民主.pdf
- 2024春形势与政策走好新时代科技自立自强之路课件.pdf
- 走好新时代科技自立自强之路-2024春季形势与政策讲稿第三讲讲义.pdf
- DeepSeek培训课件入门宝典:第2册 开发实战篇 .pptx
- 全面认识全过程人民民主-2024春形势与政策课件.pptx
- 2024春形势与政策-全面认识全过程人民民主.pptx
- 2025年春季学期形势与政策第二讲-中国经济行稳致远讲稿.docx
- 2024春形势与政策-铸牢中华民族共同体意识课件.pdf
- 2024春形势与政策-走好新时代科技自立自强之路课件 (2).pptx
- 2024春形势与政策-走好新时代科技自立自强之路课件.pptx
- 形势与政策学习指导教学-整套课件.pdf
- 2023年春季形势与政策讲稿第三讲-开创高质量发展新局面.pdf
- DeepSeek培训课件-清华大学-DeepSeek模型本地部署与应用构建.pptx
最近下载
- 2022年南昌交通学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
- 卡乐控制器PCO控制器说明.docx VIP
- 光伏玻璃研制及其工艺浅析.pdf VIP
- 企业质量环境职业健康安全管理体系内部审核报告QES.pdf VIP
- 2024年高考物理真题汇编(19套).docx
- 2024年濮阳职业技术学院单招职业技能测试题库及答案一套.docx VIP
- [江苏]2025年专利协作江苏中心招聘专利员130人笔试历年参考题库(频考点试卷)解题思路附带答案详.docx VIP
- 正泰变频器NVF2G变频器说明书使用手册.pdf
- 地下车位转让合同_地下车位转让合同格式.docx VIP
- 2023年南昌交通学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
文档评论(0)