问题如上图,我已经用“完全限定名”来反射创建了,为什么还是总返回null了,打开错误提示后,提示不能加载程序集,但是我的bin目录里,确实是有这个程序集的啊,在我的整个solution调试的时候,这个程序集也是添加进来的。
不要说Assembly.Load,我就是想知道为什么Type.GetType不行?

解决方案 »

  1.   

    可能是这个Assembly没有Load进来了,这是最大的可能。你把它放到别的目录再试一试吧。
      

  2.   


    public T CreateService<T>(string sClassName)
            {
                Type type = Type.GetType(sClassName);
                if (null == type)
                {
                    if (!m_dctAssemblyLoaded.ContainsKey(sClassName))
                    {
                        Assembly assembly = Assembly.Load(sClassName);
                        m_dctAssemblyLoaded[sClassName] = assembly;
                    }
                }
                type = Type.GetType(sClassName);
                object obj = Activator.CreateInstance(type);
                T service = PolicyInjection.Wrap<T>(obj);
                return service;
            }
    还是报错(Assembly.Load出错),错误意思与上面的图差不多,还是提示加载不了。感谢2位的回复,但是还是出错,我把dll换了目录了一样问题。晕了!!@
    我的环境是vs2010+windows server 2008的,不知道为什么?
      

  3.   

    确认引用了程序集
    Type.GetType(string)必须是一个Type的全表示名
    System.Type.GetType()默认就找自己的类型,继承的也是