.NET反射的简单示例(2)

分类: asp.net   出处:iocblog整理  更新时间:2008-07-26   添加到收藏  

(3)namespace consoleassemblytest//该项目添加了对(1)的引用

{

    class program

    {

        static void main(string[] args)

        {

            assembly assembly = assembly.loadfrom(@"e:classlibrarysomesports

bindebugclasslibrarysomesports.dll");

            type[] types = assembly.gettypes();

 

            console.writeline("get type from classlibrarysomesports.dll:");

            for (int i = 0; i < types.length; i++)

            {

                console.writeline(types[i].name);

            }

 

            //使用getconstructor()方法获取对应类型的构造器,从而构造出该类型的对象

            console.writeline("use method getconstructor():");

            constructorinfo ci = types[0].getconstructor(new type[0]);

            classlibrarysport.sport sport = (classlibrarysport.sport)ci.invoke(new object[0]);

            console.writeline(sport.getname() + " has " + sport.getduration());

 

            //使用activator.createinstance()方法构造出该类型的对象

//使用assembly.createinstance()返回为null,??

            console.writeline("use method createinstance():");

            classlibrarysport.sport sport1 = (classlibrarysport.sport)

activator.createinstance(types[0]);

            console.writeline(sport1.getname() + " has " + sport1.getduration());

 

            //反射指定类型中的名称为“getduration”的方法,通过invoke()方法执行该方法

            object objsport = activator.createinstance(types[0]);

            methodinfo method = types[0].getmethod("getduration");

            object o = method.invoke(objsport, new object[0]);

            console.writeline(o as string);

 

            console.read();

        }

    }(来源 www.iocblog.net)

}

= = = = = == = == = == = == = == = == = == = == = == = == = == = ==

output:

get type from classlibrarysomesports.dll:

football

use method getconstructor():

football has four 15 minute quarters

use method createinstance():

football has four 15 minute quarters

four 15 minute quarters

http://www.cnblogs.com/kissknife/archive/2006/08/13/475717.html

上一页 [1] [2]



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。