首页 | 头版要闻 | 经济广角 | 消费聚焦 | 民生视点
社会 | 省内要闻 | 经济论坛 | 市场特刊 | 财富周刊
经济 | 中国经济 | 经济观察 | 家庭百科 | 网络热点
您现在的位置: 河北经济日报网 >> 网络技术 >> C >> 文章正文 站内检索
服务热线:0311-88606031
同期新稿
 
普通文章 c#中获取存储过程方法
普通文章 在Visual C#中定义和使用自己的特性
普通文章 Visual C#2005中使用正则表达式
普通文章 利用C#远程存取Access数据库
普通文章 C#动态生成树型结构的Web程序设计
普通文章 论C#变得越来越臃肿是不可避免的
普通文章 用C#监控并显示CPU状态信息
普通文章 C#中实现VB中的CreateObject方法
普通文章 使用C#创建SQL Server的存储过程
普通文章 c#数据库操作的3种典型用法
普通文章 c#调用oracle存储过程返回结果集及函数
普通文章 C#3.0 中 DLINQ 从数据库获得数据集,XLINQ从
普通文章 C程序实现汉字内码与GB码
普通文章 C#3.0 中对象初始化器(Object Initializers)和
普通文章 C#3.0 LINQ 查询语法
普通文章 C#将文件保存到数据库中或者从数据库中读取文
普通文章 C#3.0 中的扩展方法 (Extension Methods)
普通文章 C#3.0 中使用扩展方法来扩展接口
普通文章 C#3.0 中对象初始化器(Object Initializers)和
普通文章 C#与IronPython脚本进行数据交互示例
在Visual C#中定义和使用自己的特性
http://www.hbjjrb.com 2007-10-2 20:55:49 【字体: 繁体
码包含了[DefectTrack]特性几个额外的用途,你可以检测这些特性。

  一些读者可能会感到惊奇,因为对于源代码修改的信息可以通过使用注释这种传统的做法。.NET已经使用工具,通过在注释里使用XML块,把这些信息很好的组织起来。

  在源代码对应的位置,你可以很容易的看到你的注释。你可以通过文本,分析源代码里的注释,从而处理这些信息,但是这个过程是单调冗长的,并且很容易出现错误。.NET提供了工具来处理注释里的XML块,这样可以消除此类问题。

  使用自定义特性可以使你达到同样的效果,它同样提供了一种可以有效组织的方法,用于记录和处理这些信息,并且它还有一个额外的优势。考虑如下情况,当把源代码编译成二进制代码的时候,你是否已经丢失了代码的注释?毫无疑问,注释已经作为副产品,永远的从可执行代码里移出。相比之下,特性的值已经变成了元数据的一部分,永远的绑定到一个程序集里。在没有源代码的情况下,你依然可以访问这些注释信息。

  另外,在源代码里允许特性构造一个与当初在设计时值一样的实例。

  获取自定义特性的值

  到此,尽管你已经在类和方法上应用了自定义属性,但在实战中你还没有真正的看到它。不管你是否附加了特性,看起来好像什么事情也没有发生。但事实上,事情已经发生了变化,你完全不用理会我的话,你可以用MSIL反编译工具,打开一个包含使用了自定义特性类型的EXE或者DLL文件。MSIL反编译工具能使你看到在IL代码里你定义的特性和它的值。图一是使用ILDASM工具,打开本文中例子编译的EXE文件所看到的。


图一:C#特性

  尽管通过反编译程序集,看到了特性的值,证明了它们的确存在,但是你仍然没有看到跟它们相关的行为。那么现在,你就可以使用反射API遍历一个程序集包含的类型,查询你自定义的特性,在应用了特性的类型上获取特性的值。

  考虑如下测试代码的一般的做法。程序加载指定的程序集,得到一个包含程序集中所有成员的数组,在它们中间,迭代寻找应用了[DefectTrack]特性的类。对于应用了[DefectTrack]特性的类,测试程序将在控制台上输出特性的值。对于类型中的方法,程序仍然采用了同样的步骤和迭代。这些循环采用它们的方式在整个程序集里“游走”。

using System ;
using System.Reflection ;
using MyAttributeClasses ;

public class TestMyAttribute
{
public static void Main( )
{
DisplayDefectTrack( "MyAttributes" ) ;
Console.ReadLine();
}

public static void DisplayDefectTrack(
string lcAssembly )
{
Assembly loAssembly =
Assembly.Load( lcAssembly ) ;

Type[ ] laTypes = loAssembly.GetTypes( ) ;

foreach( Type loType in l

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页

板块 推荐
普通文章 新能源板块:重出江湖
普通文章 谨慎对待敏感行业
普通文章 环保板块:在政策扶持下成长
普通文章 机构资金关注有色板块
普通文章 汽车板块再受关注
普通文章 新能源股:盈利和成长都重要
普通文章 银行业:未来两年成长可期 推荐5只个股
普通文章 造纸行业:步入景气周期 关注4只个股
房产 推荐
普通文章 业内人士称房产新政出台 购房需求将大降三成
普通文章 调控手段连续累积 上海二手房市出现买主悔约
普通文章 北京经济适用房只能自住 骗购经适房将严惩
普通文章 京城楼市10月份预计开盘46个 数量不足9月七
普通文章 北京石景山3900套两限房均价低于销售限价
普通文章 评论:中国房市会不会步A股后尘
普通文章 投资房产也有风险:给老丁算笔账
普通文章 公积金储蓄年贬值500亿 明天我们怎么养老购
频道精选  
焦点:  银行业30年变革:见证居民财富800倍膨胀
股票:  节后一周大盘有望上攻5700点!
社会:  51岁老汉诱骗收破烂妇女 强奸不成抢走200
主力:  一周个股、板块主力交易数据解密
经济:  央行银监会出台房贷新政
个股:  四季度盈利模式:买入正在爆发的成长蓝筹
时评:  后股改时代国有股减持并非利空
黑马:  航天机电:天威保变连续涨停后谁来接班?
读书:  望“性”兴叹 明清寡妇是如何排解寂寞的(
板块:  新能源板块:重出江湖
体育:  英超宝贝与男友暧昧戏水
基金:  每周基金组合建议:可关注高折价高分红大
军事:  美国军迷们的裸体游行
债券:  可分离债的申购收益水涨船高
时尚:  走光也动人
传闻:  据传,航天长峰注资传闻求证
娱乐:  小S自认沉迷于性爱
理财:  理财日刊:复利投资能涨3倍的股,巧把负债
数码:  黑色到货银色跳水了多普达U1000狠降2000
汽车:  前大灯存缺陷 大众将召回速腾等34万辆车
百科:  中国女性的自慰现状
房产:  业内人士称房产新政出台 购房需求将大降三

普通文章 51岁老汉诱骗收破烂妇女 强奸不成抢走200元
普通文章 黑猩猩挖地道逃离动物园 “越狱”失败遭射杀
普通文章 重庆火车站店主向民工强卖裸女扑克
普通文章 商场"亲吻汽车大赛"结束 女子连吻27小时得轿车

六种最变态的做爱方式

男人眼中最美的女人臀

莲,海容天天的最新裸体行

美女请把裙子穿好

绝对让你喷饭的超强趣图

玩高空裸体跳伞的美女

欧美欢场里的纵欲男女

少妇为何比少女更诱人
同期热点
普通文章 XFocus Windows Internet服务器安全配置
普通文章 Windows 2003 服务器设置 完全版
普通文章 Windows 2003安全设置大全-IIS、终端服务、FT
普通文章 C#事件机制归纳
普通文章 Mysql 安全注意事项
普通文章 SQL Server加密与SQL注入
普通文章 注意那些容易被忽略的SQL注入技巧
普通文章 不需xp_cmdshell支持在有注入漏洞的SQL服务器
普通文章 MySQL数据库中关于网络安全的解决方案
普通文章 如此高效通用的分页存储过程是带有sql注入漏洞
普通文章 忘记了 MySQL 的 root 密码
普通文章 SQL2000中默认sa帐号改名和删除的最安全方法
普通文章 黑客经验谈Sql server SA权限入侵的感悟
普通文章 利用ORACLE系统账户默认口令提升权限
普通文章 什么是SQL注入法攻击
普通文章 js asp c# 防止sql注入
普通文章 系统安全之SA弱口令带来的安全隐患
普通文章 MySQL服务器内部安全数据目录访问
普通文章 在MySQL数据库增加新用户权限简介
普通文章 你的MySQL安全了吗?加铸23道安全门

英超宝贝与男友暧昧戏水

英超巨胸宝贝惊人双峰
德国队2比0战胜巴西队夺得2007年女足世界杯冠军
米兰弃将禁欲冷落性感女友 爆射三炮释放存货
国产骨感宝贝刘羽琦
体育世家出美女 体育名嘴容貌靓丽魅力十足

梁家辉受伤入院否认遇袭

《太阳》遭恶搞

张学友3年狂炒菲佣21人

蔡依林秀舞姿主持人下跪

小S自认沉迷于性爱

汤唯《色•戒》全裸入

范冰冰被警察带走

中秋赏月李安崩溃痛哭

河北经济日报社版权所有 河北经济日报社网络信息部管理与维护
地址 石家庄市裕华西路186号 电话:0311-88606031
hebei82gov@yahoo.com.cn
未经许可不得转载和镜像 冀ICP备字020964号
技术支持 动易网络科技有限公司
建议使用1024x768分辨率