我模仿PetShop4.0的多层结构写了一个程序,可为什么当我修改了其中的工程文件,比如增加了一个接口之类的,重新编译的时候,老是说我出现了诸如"无法将类型为“PetShop.SQLServerDAL.Product”的对象强制转换为类型“PetShop.IDAL.IProduct”。 "这样的错误,是不是dll的问题,需要手动更新吧,不过我想应该不是这个问题吧,请高手指点下,最近被这反射一类的错误搞得头都大了。

解决方案 »

  1.   

    PetShop.SQLServerDAL.Product和接口PetShop.IDAL.IProduct有什么关系?
      

  2.   

    PetShop.SQLServerDAL.Product是实现接口PetShop.IDAL.IProduct的类啊
      

  3.   

    namespace PetShop.DALFactory
    {
        public class DataAccess
        {
            private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];
            private DataAccess() { }
            public static PetShop.IDAL.ICatalog CreateCatalog()
            {
                string className = path + ".Catalog";
                return (PetShop.IDAL.ICatalog)Assembly.Load(path).CreateInstance(className);
            }
            public static PetShop.IDAL.IProduct CreateProduct()
            {
                string className = path + ".Product";
                return (PetShop.IDAL.IProduct)Assembly.Load(path).CreateInstance(className);
            }
        }
    }
    --------------------------------------------------------------------------------------------
    namespace PetShop.IDAL
    {
        public interface IProduct
        {
            IList<ProductInfo> GetProductsOnCatalogPromotion(int PageNumber,out int HowManyPages);
        }
    }
    ---------------------------------------------------------------------------------------------
    namespace PetShop.SQLServerDAL
    {
        public class Product
        {
            private static readonly string ProductDescriptionLength = ConfigurationManager.AppSettings["ProductDescriptionLength"].ToString();
            private static readonly string ProductsPerPage = ConfigurationManager.AppSettings["ProductsPerPage"].ToString();
            public IList<ProductInfo> GetProductsOnCatalogPromotion(int PageNumber, out int HowManyPages)
            {
                .......
            }
        }
    }
    ----------------------------------------------------------------------------------------------
    错误如下:无法将类型为“PetShop.SQLServerDAL.Product”的对象强制转换为类型“PetShop.IDAL.IProduct
      

  4.   

    哪里实现了接口?
      public class Product 后面没东西了?:PetShop.IDAL.IProduct