ASP.NET网页编程之映照 -- zt 一致教授教养网
完全不一样的。.net其实我也说不太清,.net可以把他理解为跟J2EE相对的工具。c++主要做系统相关的开发你要学.net的话就应该学C#。(其实微软在.NET平台上也考虑了给C++留一个地位。映照在很多情形下,我们必要一种办法,可以从元数据中会见属性,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("
BugID:{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办法从组合体中剖析出一个范例:
http://www.ckuyun.com/
也许C#刚上市的时候有些抄袭Java吧,但自从C#2.0上市之后,整个局面就扭转乾坤了,不但Java在模仿C#,而且他从来都没能跟得上C#的脚步。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。 能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。 当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
页:
[1]