|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。一旦失掉类工具,上表中所列的办法就可以被叫来挪用reflaction.第一个例子将反省在CSharpReflectionSamples.Reflect类中的失掉办法的信息。第一块代码用来界说类中的每一个办法的名字,第二块代码将论述失掉办法信息。向上面所展现的,我们将用一个数组来保留用GetMethod()办法前往的办法信息。MethodInfo类包括信息为办法的名字,不论是否是假造的,它都是可见的,等等。
namespaceCSharpReflectionSamples
{
usingSystem;
usingSystem.Reflection;
///<summary>
///SummarydescriptionforClient.
///</summary>
publicclassClient
{
publicstaticvoidMain()
{
//thetypeofoperatorandtheGetTypemethod
//bothreturnaTypeobject.
Typetype1=typeof(Reflect);
ReflectobjTest=newReflect(0);
Typetype2=objTest.GetType();
Console.WriteLine("TypeofobjTestis{0}",type2);
Console.WriteLine();
//pause
Console.ReadLine();
//reflectmethodinformation
MethodInfo[]minfo=type1.GetMethods();
//iteratethroughmethods
foreach(MethodInfominminfo)
{
Console.WriteLine(m);
}
Console.WriteLine();
}
}
}
下一个例子将展现静态失掉工具有大概打仗的每一个机关器的信息。相似与下面的例子,我们将前往一个包括每一个机关器的信息ConstructorInfo工具。
namespaceCSharpReflectionSamples
{
usingSystem;
usingSystem.Reflection;
///<summary>
///SummarydescriptionforClient.
///</summary>
publicclassClient
{
publicstaticvoidMain()
{
//thetypeofoperatorandtheGetTypemethod
//bothreturnaTypeobject.
Typetype1=typeof(Reflect);
ReflectobjTest=newReflect(0);
Typetype2=objTest.GetType();
Console.WriteLine("TypeofobjTestis{0}",type2);
Console.WriteLine();
//pause
Console.ReadLine();
//reflectconstructors
ConstructorInfo[]cinfo=type1.GetConstructors();
//iteratethroughconstructors
foreach(ConstructorInfocincinfo)
{
Console.WriteLine(c);
}
}
}
}
最初一部分,大概是reflection名字空间中最冲动民气的部分,是在运转时静态挪用类办法。有两种办法,起首,我们将创建一个数组来存储参数,这些参数被机关器用来制作工具。第二,一个System.Object工具将匹敌CreateInstance办法的工具。以失掉想失掉工具的例子。最初,当我们有了工具的材料,我们可以挪用任何利用MethodParm数组的办法。上面是代码:
namespaceCSharpReflectionSamples
{
usingSystem;
usingSystem.Reflection;
///<summary>
///SummarydescriptionforClient.
///</summary>
publicclassClient
{
publicstaticvoidMain()
{
//thetypeofoperatorandtheGetTypemethod
//bothreturnaTypeobject.
Typetype1=typeof(Reflect);
ReflectobjTest=newReflect(0);
Typetype2=objTest.GetType();
//dynamiccreationandinvocation
//instantiatetheReflectobject,passing
//avalueof1totheconstructor
object[]oConstructParms=newobject[]{1};
objectobj=Activator.CreateInstance(type1,oConstructParms);
//invokemethodofreflectobject
object[]oMethodParms=newobject[]{17};
intintResult=(int)type1.InvokeMember("AMethod",BindingFlags.Default|
BindingFlags.InvokeMethod,null,obj,oMethodParms);
Console.WriteLine("ResultofcallingAMethodon{0}is{1}",
type1.Name,intResult);
//pause
Console.ReadLine();
}
}
}
这篇文章论述了.netReflaction的基本,鄙人一部分,我将和人人会商进一步的话题,好比,静态公布两头言语,旌旗绑定,和两头言语准绳。
ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。 |
|