解决方案里面有两个类库项目,DAL和NiluDAL,这两个程序集里面的方法都一样,都继承自接口层IDAL,然后我用DALFactory去动态的创建对象,为什么用DAL的可以创建,用NiluDAL的创建出来的对象是null呢。NiluDAL里面的类我都是从DAL里面的类文件复制过来粘贴的,会是什么问题呢,搞了好久弄不明白,工作急,现在无法进行下去,求救啊。。 private static readonly string path = System.Configuration.ConfigurationManager.AppSettings["WebDAL"].ToString();
        public static IDAL.IDAL_XT_Canshu CreateXTCanshuInstance()
        {
            string className = path + ".DAL_XT_Canshu";
            return (IDAL.IDAL_XT_Canshu)Assembly.Load(path).CreateInstance(className);
        }

解决方案 »

  1. 调试了,也跟踪了,就是string className = path + ".DAL_XT_Canshu";
    得到的值还是正确的,但返回创建对象却是空的,真是头疼
      

  2. 路径对了,一个是 <add key="WebDAL" value="NiluDAL"/>
    另一个是 <add key="WebDAL" value="DAL"/>
    第一个成功创建对象,第二个却不行
      

  3. 应该是没有找到Configuration文件
    string className = path + ".DAL_XT_Canshu";
    这个只是获取命名空间,所以直接string className = "xxx.xxx.DAL_XT_Canshu";就可以了
    xxx.xxx是你的命名空间
      

  4. 我跟踪className的值是NiluDAL.DAL_XT_Canshu,这个值应该是对的啊,只是创建不出对象来
      

  5. 当使用<add key="WebDAL" value="DAL"/>的时候
    跟踪className的值是DAL.DAL_XT_Canshu这个值能创建得出对象,到底是哪里出了问题呢??
      

类似问题 »