您的位置:程序门 -> .net技术 -> c#



关于动态创建类实例的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于动态创建类实例的问题
发表于:2007-01-04 13:56:14 楼主
我在同一个命名空间下这样写代码:(主要功能是根据自己写的类的名称《字符串》来创建他的实例),下面的代码是成立的:
namespace   windowsapplication1
{
        public   partial   class   form1   :   form
        {
                public   form1()
                {
                        initializecomponent();
                        type   typ   =   type.gettype( "windowsapplication1.mycls ");
                        constructorinfo   info   =   typ.getconstructor(new   type[]   {     });
                        info.invoke(new   object[]   {     });
                       
                }
        }

        public   class   mycls
        {
                public   mycls(   )
                {
                        messagebox.show( " ");
                }
                public   mycls(int   a)
                {
                        messagebox.show(a.tostring());
                }
        }
}
如果把上面的代码中,将form1构造函数中的代码移到另一个类中,并封装成一个dll,再次调用外部的类mycls,就会提示引用空对象,这是为什么呢?
发表于:2007-01-04 14:25:491楼 得分:0
添加dll引用了么??
移动后命名空间是否一致??
发表于:2007-01-04 15:08:222楼 得分:0
描述不太清楚哦
发表于:2007-01-04 17:36:453楼 得分:0
dll已经添加引用了,命名空间一致与不一致的结果都是一样的,希望大侠帮一下哦
发表于:2007-01-05 21:30:544楼 得分:0
oo
发表于:2007-07-27 18:53:005楼 得分:0
我也遇到了这个问题,似乎只能用反射来解决。
不知道不用反射的话是否可行?
发表于:2007-07-27 21:33:356楼 得分:0
windowsapplication1.mycls只是类的名字,这样用reflection的话.net只会在当前的assembly(dll)里面找mycls的定义。

比如说form1和mycls编译以后的dll文件名是aaa.dll,那么用下面的语句:

type   typ   =   type.gettype( "windowsapplication1.mycls,aaa ");

发表于:2007-07-28 07:54:097楼 得分:0
假如调用这个重载方法,就看到错误信息了

type   typ   =   type.gettype( "windowsapplication1.mycls ",   true);


快速检索

最新资讯
热门点击