仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 735|回复: 8
打印 上一主题 下一主题

[学习教程] NET网页编程之.net中Attribuge的具体使用(二)

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:20:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我实在想不明白java的机制,为什么非要那么蛋疼,在同一个平台下重复编译。.NETFramework中对Attribute的撑持是一个全新的功效,这类撑持来自它的Attribute类。在你的程序中得当地利用这个类,大概是天真奇妙天时用这个类,将使你的程序取得某种在以往编程中很难做到的才能。我们来看一个例子:

假设你是一个项目开辟小组中的成员,你想要跟踪项目代码反省的信息,一般你能够把代码的反省信息保留在数据库中以便查询;大概把信息写到代码的正文内里,如许能够浏览代码的同时看到代码被反省的信息。我们晓得.NET的组件是自形貌的,那末是不是可让代码本人来形貌它被反省的信息呢?如许我们既能够将信息和代码保留在一同,又能够经由过程代码的自我形貌失掉信息。谜底就是利用Attribute.

上面的步骤和代码告知你怎样做:
起首,我们创立一个自界说的Attribute,而且事前设定我们的Attribute将施加在class的元素下面以猎取一个类代码的反省信息。
usingSystem;
usingSystem.Reflection;

[AttributeUsage(AttributeTargets.Class)]//还记得上一节的内容吗?
publicclassCodeReviewAttribute:System.Attribute//界说一个CodeReview的Attribute
{
privatestringreviewer;//代码反省人
privatestringdate;//反省日期
privatestringcomment;//反省了局信息

//参数机关器
publicCodeReviewAttribute(stringreviewer,stringdate)
{
this.reviewer=reviewer;
this.date=date;
}

publicstringReviewer
{
get
{
returnreviewer;
}
}

publicstringDate
{
get
{
returndate;
}
}

publicstringComment
{
get
{
returncomment;
}
set
{
comment=value;
}
}
}

我们的自界说CodeReviewAttribute同一般的类没有区分,它从Attribute派生,同时经由过程AttributeUsage暗示我们的Attribute仅能够施加到类元素上。

第二步就是利用我们的CodeReviewAttribute,假设我们有一个Jack写的类MyClass,反省人Niwalker,反省日期2003年7月9日,因而我们施加Attribute以下:
[CodeReview("Niwalker","2003-7-9",Comment="Jack的代码")]
publicclassMyClass
{
//类的成员界说
}

当这段代码被编译的时分,编译器会挪用CodeReviewAttribute的机关器而且把"Niwalker"和"2003-7-9"分离作为机关器的参数。注重到参数表中另有一个Comment属性的赋值,这是Attribute独有的体例,这里你能够设置更多的Attribute的大众属性(假如有的话),必要指出的是.NETFramework1.0同意向private的属性赋值,但在.NETFramework1.1已不同意如许做,只能向public的属性赋值。

第三步就是掏出我们必要的信息,这是经由过程.NET的反射来完成的,关于反射的常识,限于篇幅我不盘算在这里举行申明,大概我会在今后别的写一篇先容反射的文章。
classtest
{
staticvoidMain(string[]args)
{
System.Reflection.MemberInfoinfo=typeof(MyClass);//经由过程反射失掉MyClass类的信息

//失掉施加在MyClass类上的定制Attribute
CodeReviewAttributeatt=
(CodeReviewAttribute)Attribute.GetCustomAttribute(info,typeof(CodeReviewAttribute));
if(att!=null)
{
Console.WriteLine("代码反省人:{0}",att.Reviewer);
Console.WriteLine("反省工夫:{0}",att.Date);
Console.WriteLine("正文:{0}",att.Comment);
}
}
}

在下面这个例子中,Attribute饰演着向一个类增加分外信息的脚色,它其实不影响MyClass类的举动。经由过程这个例子,我们大抵能够晓得怎样写一个自界说的Attribute,和怎样在使用程序利用它。下一节,我将先容怎样利用Attribute来主动天生ADO.NET的数据会见类的代码。不过你如果学.net的话,你就不要选os了,这课比较底层的。你可以旁听数据库加上软件构件和中间件。(webservices和面向服务的课也应该听一听)
柔情似水 该用户已被删除
沙发
发表于 2015-1-18 13:15:02 | 只看该作者
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
小女巫 该用户已被删除
板凳
发表于 2015-1-26 20:48:03 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-4 21:28:30 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
因胸联盟 该用户已被删除
5#
发表于 2015-2-10 15:58:33 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
admin 该用户已被删除
6#
发表于 2015-3-1 14:01:14 | 只看该作者
提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。
变相怪杰 该用户已被删除
7#
发表于 2015-3-10 19:54:10 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
只想知道 该用户已被删除
8#
发表于 2015-3-17 10:11:41 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-24 07:57:46 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 04:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表