映射 -- zt 统一教学网

映射  

在许多情况下,我们需要一种方法,能够从元数据中访问属性,C#提供了对映射的支持以访问元数据。通过初始化MemberInfo类型对象,System.Reflection名字空间中的这个对象可以用来发现成员的属性,对元数据进行访问。  

System.Reflection.MemberInfoinf=typeof(MyMath);  

对MyMath类型调用typeof操作符,它返回一个由继承MemberInfo而生成的Type类型的变量。  

下一步是对MemberInfo对象调用GetCustomAttributes,并将希望得到的属性的类型作为一个参数传递给GetCustomAttributes。我们将得到一个对象数组,数组的每个成员的类型都是BugFixAttribute。  

object[]attributes;
attributes=Attribute.GetCustomAttributes(inf,typeof(BugFixAttribute));  

我们就可以遍历这个数组了,打印BugFixAttribute对象的数组,代码下所示:  

属性的打印  

publicstaticvoidMain()
{
MyMathmm=newMyMath();
Console.WriteLine("CallingDoFunc(7).Result:{0}",
mm.DoFunc1(7));

//获取成员信息并使用它访问自定义的属性
System.Reflection.MemberInfoinf=typeof(MyMath);
object[]attributes;
attributes=
Attribute.GetCustomAttributes(inf,typeof(BugFixAttribute));

//遍历所有的属性
foreach(Objectattributeinattributes)
{
BugFixAttributebfa=(BugFixAttribute)attribute;
Console.WriteLine("\nBugID:{0}",bfa.BugID);
Console.WriteLine("Programmer:{0}",bfa.Programmer);
Console.WriteLine("Date:{0}",bfa.Date);
Console.WriteLine("Comment:{0}",bfa.Comment);
}
}  

类型发现  

我们可以通过映象的方法来研究一个组合实体的内容,如果要建立需要显示组合体内部信息的工具或动态地调用组合体中的途径,这一方法是非常有用的。  

通过映象的方法,我们可以知道一个模块、方法、域、属性的类型,以及该类型的每个方法的信号、该类支持的界面和该类的超级类。我们可以通过如下的形式,用Assembly.Load静态方法动态地加载一个组合体:  

publicstaticAssembly.Load(AssemblyName)  

然后,可以将它传递到核心库中。  

Assemblya=Assembly.Load("Mscorlib.dll");  

一旦加载了组合体,我们可以通过调用GetTypes返回一个Type对象数组。Type对象是映射的核心,它表示类、界面、数组、值和枚举等的类型定义。  

Type[]types=a.GetTypes();  

组合休会返回一个类型的数组,我们可以使用foreach-loop结构显示该数组,其输出将有好几页文档之多,下面我们从中找一小段:  

TypeisSystem.TypeCode
TypeisSystem.Security.Util.StringExpressionSet
TypeisSystem.Text.UTF7Encoding$Encoder
TypeisSystem.ArgIterator
TypeisSystem.Runtime.Remoting.JITLookupTable
1205typesfound  

我们得到了一个内容为核心库中类型的数组,可以将它们都打印出来,该数组将有1205个项。  

对一种类型映射我们也可以对组合体中一种类型进行映射。为此,我们可以使用GetType方法从组合体中解析出一个类型:  

时间: 2024-07-31 06:05:21

映射 -- zt 统一教学网的相关文章

使用基本类库 -- zt 统一教学网

使用基本类库   为了更好地理解C#与C++的区别和解决问题方式的变化,我们先来看一个比较简单的例子.我们将创建一个读取文本文件的类,并在屏幕上显示其内容.我将把它做成多线程程序,以便在从磁盘上读取数据时还可以做其他的工作.   在C++中,我们可能会创建一个读文件的线程和另一个做其他工作的线程,这二个线程将各自独立地运行,但可能会需要对它们进行同步.在C#中,我们也可以完成同样的工作,由于.NET框架提供了功能强大的异步I/O机制,在编写线程时,我们会节省不少的时间.   异步I/O支持是内置

网页教学网代码分享:干净简洁的网页列表代码

文章简介:网页教学网代码分享:干净简洁的网页列表代码.  谁不希望有一个好看而又干净的网页列表?这篇文章中我们给出几个实用的例子,你可以把他们直接用到自己的工作中. 我们从一个带有动画效果的垂直列表开始,接着是一个图文混排的例子,然后是一个只有图片的list例子跟一个水平菜单的例子,最后是一个以放大数字开头的列表.对于初学者而言这里可以学到很多东西,对于熟手,直接拿来用就是了. 1.helvetica字体的列表 第一个例子的样式看起平淡无奇,不过喜欢简约风格的人也许会感兴趣,这类似于印刷字体风格

无盘教学网简介及维护

无盘教学网是以无盘工作站形式组建的教学网络.无盘工作站是连入局域网的"三无"计算机(无软盘.无硬盘.无光驱),它的操作系统以及所运行的应用软件都存储在局域网文件服务器中. 由于具有成本较低.安全可靠.便于管理等优点,所以很多学校,尤其是广大农村中小学都采用Windows NT Server 4.0服务器+Windows 9x无盘工作站的形式构建教学网络.无盘网络建好后,如何有效地对其进行管理维护呢?下面,笔者就来谈谈无盘教学网络维护的技巧和方法. 一.硬件维护 硬件是无盘网络中看得见.

联普TL-WR890N如何映射服务器到外网

  联普TL-WR890N映射服务器到外网步骤一.进入设置页面 例如某小型企业需要将网页服务器对外网开放.通过虚拟服务器功能实现该需求.用户网络参数如下: 服务器类型外部端口内部端口 WEB服务器808080 对外开放端口:Internet用户访问服务器使用的端口. 注意:以上参数仅供本文指导参考,请以实际为准. 登录路由器管理界面,点击 应用管理,进入应用中心,如下图 找到虚拟服务器,点击 进入,如下 联普TL-WR890N映射服务器到外网步骤二.添加映射条目 1.点击添加 点击添加. 2.添

asd-WINDOWS AZURE如何映射IP到外网

问题描述 WINDOWS AZURE如何映射IP到外网 如题,本人有东西测试需要朋友通过外网连接, 如何才能映射AZURE到外网呢? 解决方案 azure会提供公网ip.不需要映射,但是需要打开端口,默认虚拟机只打开80和3389,也就是web和远程桌面,别的端口需要在仪表板的endpoint上配置. 解决方案二: Hi, 正如caozhy所说,我们通过外网访问时需要在azure门户网站上配置终结点,详细请看http://www.windowsazure.cn/zh-cn/documentati

服务器-不进行端口映射如何向内网计算机建立TCP链接?

问题描述 不进行端口映射如何向内网计算机建立TCP链接? 小弟初学socket编程,尝试了一下建立TCP链接,局域网内很容易,但在广域网上,因为作为服务器的计算机是在内网中,所以只有在路由器中做了端口映射之后才能建立TCP链接.所以想问一下各位大神,如何才能在不进行端口映射的情况下建立TCP链接?我看很多点对点的网络游戏并没有要求对路由器进行设置,还请各位指教 解决方案 需要有公网IP(其中一台机器有公网IP,两台都有就不用说了)或者有一个中间服务器是有公网IP(做NAT穿透),否则没办法 解决

柳焕斌广场舞教学网实战案例对SEO的启发

中介交易 SEO诊断 淘宝客 云主机 技术大厅 最近seovip和Baidu SEO Guide创始人柳焕斌在网站上分享了一个广场舞教学网的SEO实战案例,这也算是一个比较成功的SEO案例,短短六个月的时间就把广场舞这个热门关键词 做到了百度第三位,由于第一位是百度视频,所以也可以说是自然排名第二位,对于在短期就做到了这个效果是很厉害的了,所以在 这里肖俊也通过简单分析一下这个SEO案例对我们做SEO的一些启发. 广场舞教学网的SEO基本情况(点击查看大图) 上图是用站长工具中的SEO查询工具查

一个高二的小伙子制作广场舞教学网SEO的过程

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 我是来自一个小城的高二小伙子,有着对电脑的热情,对网络的执着.下面由我来解析下我的广场舞教学网站的SEO过程. 现在电影站,小说站,动漫站的竞争力相对来大了很大,多多少少的站长在成功中和失败走过,但是我们不能气馁对不对,我也曾咨询过一个大站的站长,他只给了我一句话:"坚持到最后你才会胜利",我是一个初涉未深的小伙,我打算搞

[TL-WDR7800] 如何映射服务器到外网?

本文指导TL-WDR7800的虚拟服务器功能应用和设置方法. 某小型企业需要将网页服务器对外网开放,通过虚拟服务器功能实现该需求.用户网络参数如下: 服务器类型 外部端口 内部端口 WEB服务器 8080 80 对外开放端口:Internet用户访问服务器使用的端口. 注意:以上参数仅供本文指导参考,请以实际为准. 登录路由器管理界面,点击 应用管理,进入应用中心,如下图: 找到虚拟服务器,点击 进入,如下: 1.点击添加 点击添加. 2.添加映射参数 输入需要映射的服务器的参数,如下: 外部端