有些朋友在做我提供的基于接口和工厂模式的
三层架构示例项目代码时,经常会在DALFactory类厂部分出现无法反射创建类示例的错误。就网友来信询问最多的情况,在此作一个统一说明,如果你也遇到了同样的问题,请参考。
DALFactory源码:
string path = System.Configuration.ConfigurationSettings.AppSettings["DAL"];//从web.config里获得数据层的程序集名
string CacheKey = path+".SysManage";//程序集+类名,得到类的类型全名
object objType = DataCache.GetCache(CacheKey);
if (objType == null)
{
try
{
objType = Assembly.Load(path).CreateInstance(CacheKey);// 经常出错行
DataCache.SetCache(CacheKey, objType);// 写入缓存
}
catch(System.Exception ex)
{
string str=ex.Message;
}
}
return (AdDesktop.IDAL.ISysManage)objType;
错误说明:
1.每一层是否是独立的程序集(也就是独立的项目)
因为Assembly.Load(path)这里的path必须是一个程序集的名称,而不是类命名空间的名称。
2.请检查数据层是否实现了接口。
SQLServerDAL下面的具体类是否实现了接口的定义,如:
3.请检查程序集名称和命名空间不一致。
因为Assembly.Load(path)这里的path必须是一个程序集的名称
CreateInstance(CacheKey)这里的CacheKey其实是需要反射的类型全名(包括命名空间的全路径)。
所以,尽量让程序集名称和命名空间一致,这样的得到的类型全名=程序集名称+类名。
否则,你需要把CacheKey换成实际的类型全名。
4.请检查BLL层是否添加了SQLServerDAL的项目引用。
如果你发现还有其他问题,可以回贴,让大家都学习一下。
分享到:
相关推荐
动软.Net代码生成器Codematic 是一款为C#数据库程序员设计的自动代码生成器,Codematic 生成的代码基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想...
方便用户更好的理解和使用该架构进行开发,配合动软Codematic代码生成器,可以使开发效率事半功倍,倍感轻松。 登录用户:admin 密码:1 ****************************************************** 项目结构: Lib...
三层结构示例项目源码VS2005版 该项目是一个基于接口的工厂模式的三层架构示例解决方案,数据库是(SQL2000) 本软件导航菜单使用了微软的iewebcontrols控件,如果不能显示树菜单链接,请安装该控件。 如果win2003...
软件名称:动软.Net代码自动生成器(Codematic) 软件版本:1.9.7.2 (2006.4.14) 软件容量:2.65 MB 软件分类:开发工具 软件性质:国产软件 / 简体中文 / 免费软件 应用平台:WinNT/2000/XP...
DbToCode 是一款为 C# 数据库程序员设计的自动代码生成器,DbToCode 生成的代码基于基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。采用 Model +...
.Net代码生成器是一款为C#数据库程序员设计的自动代码生成器,生成的代码基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。采用Model+ DAL +BLL+Web...
在“DALFactory层”中,我们通常会创建一个工厂类,例如`DALFactory`,它包含一系列方法,用于根据不同的需求返回不同的数据访问对象。这些方法可能是静态的,以便于客户端直接调用,无需实例化工厂。例如: ```...
在实际使用中,开发者可能需要根据项目需求,选择合适的工厂类,通过调用其方法生成各层的代码。这不仅简化了代码的编写,也使得代码结构更加清晰,便于团队协作和后期维护。 总的来说,"抽象工厂模式代码生成工具...
它可以生成:实体Model,DAL(数据访问层),IDAL(接口层),DALFactory(类工厂),BLL(业务逻辑层),WEB层等多层的代码,可以节省大量的时间来做业务逻辑的代码,那些重复的代码就交给它去做吧,1分钟生成一个架构所有...
MVC+EF+架构设计示例源码 源码描述: 步骤说明 首先 我们现在数据库建一个表 Product表 在CinDou.EFramework层中建立 CinDouDbContext.cs 文件 在 CinDou.Model 项目中建立 Product.cs 在BFactoy和DFactory层中分别...
在“DALFactory”项目中,可能有一个名为`IDALFactory`的接口,定义了一系列方法来创建不同的数据库操作对象。然后,针对每种具体的数据库(例如SQLServerDALFactory、MySQLDALFactory),会有实现这个接口的类,...
项目结构: Lib:公用类库 ...DALFactory: 工厂类 IDAL: 接口层 Model: 数据实体 SQLServerDAL: 数据层 Web: 表示层,Web项目 Codematic_Data.MDF : 该项目所使用的数据库 DEncryptTest :加密解密工具 ......
DALFactory.cs
易于扩展,避免项目开发过程中数据库结构调整所引起大量的基础类库代码维护工作,避免多个人维护同一个类时引起代码紊乱。 2、扩展存储过程说明 步骤如下: 1) 在数据库中新建存储过程; 2) 在DAL文件夹下新建分布类...
学习这个源码示例,你可以了解到如何在ASP.NET MVC项目中组织代码,以及如何实现多层架构来处理用户登录功能。这将帮助你更好地理解软件工程中的分层设计原则,提升你的开发技能。同时,通过对每个层次的理解,你...
学习这个示例,开发者可以了解如何在Asp.NET中组织代码,如何通过接口实现各层之间的解耦,以及如何利用工厂模式来管理和创建数据访问对象。这对于初学者来说是一个很好的起点,能够帮助他们理解三层架构的原理和...
动软.Net代码生成器Codematic 是一款为C#程序员设计的自动代码生成器,Codematic 生成的代码基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。...
【ASP.NET衣购网站项目源码】是一个基于ASP.NET技术的电子商务网站开发示例,它展示了如何使用三层架构来构建一个完整的在线购物平台。这个项目包括了数据访问层(DAL)、业务逻辑层(BLL)以及用户界面层,提供了一...
在本示例中,使用Visual Studio .NET 2005创建了一个WinForm项目,该项目依赖于业务逻辑层(Business)。 2. **业务逻辑层(Business层)**:这一层包含业务规则和处理,它是应用的核心。它处理所有业务相关的计算...
动软.Net代码生成器Codematic 是一款为C#程序员设计的自动代码生成器,Codematic 生成的代码基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。...