C# 三层结构的 工厂模式的报错的 小问题

loveye0215 2012-06-06 04:52:31
大侠们,这个总是报: 调用的目标发生了异常。 相信很多都遇到过这个问题,
我在网上也找了很久没看到什么解决的办法。

其报错的部分为: return (IYYMLoginDao)Assembly.Load(path).CreateInstance(className);

在方法里面:
public static IYYMLoginDao CreateYYMLoginDao()
{
string className = path + ".YYMLoginDao";
return (IYYMLoginDao)Assembly.Load(path).CreateInstance(className);
}

using 这些都导到里面去了的。

这个也写好了的。
private static readonly string path = ConfigurationManager.AppSettings["ServiceDAL"];

web.config 里面也配了的
<appSettings>
<add key="ServiceDAL" value="YYMAspNet_DAL"/>
</appSettings>

就是 不明白怎么还有这个错。。。

求大侠解决。、

在网页里面的错误可以看到:

未能加载文件或程序集“YYMAspNet_DB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。

==============================================================================================
具体如下:

源错误:


行 13: public class YYMLoginDao:IYYMLoginDao
行 14: {
行 15: private IDBHelper helper = DBHelper.GetInstance();
行 16:
行 17:


源文件: C:\Users\yongmao\Documents\Visual Studio 2010\Projects\YYMAspNetWeb\YYMAspNet_DAL\YYMLoginDao.cs 行: 15

程序集加载跟踪: 下列信息有助于确定程序集“YYMAspNet_DB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”未能加载的原因。


警告: 程序集绑定日志记录被关闭。
要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。
注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。



堆栈跟踪:


[FileNotFoundException: 未能加载文件或程序集“YYMAspNet_DB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。]
YYMAspNet_DAL.YYMLoginDao..ctor() in C:\Users\yongmao\Documents\Visual Studio 2010\Projects\YYMAspNetWeb\YYMAspNet_DAL\YYMLoginDao.cs:15

[TargetInvocationException: 调用的目标发生了异常。]
System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache) +98
System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) +241
System.Activator.CreateInstance(Type type, Boolean nonPublic) +69
System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +1136
System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +111
System.Reflection.Assembly.CreateInstance(String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +62
System.Reflection.Assembly.CreateInstance(String typeName) +22
YYMAspNet_DALFactory.DataAccess.CreateYYMLoginDao() in C:\Users\yongmao\Documents\Visual Studio 2010\Projects\YYMAspNetWeb\YYMAspNet_DALFactory\YYMLoginDaoFactory.cs:15
YYMAspNet_BLL.YYMLoginBll..ctor() in C:\Users\yongmao\Documents\Visual Studio 2010\Projects\YYMAspNetWeb\YYMAspNet_BLL\YYMLoginBll.cs:12
YYMAspNetWeb.Login..ctor() in C:\Users\yongmao\Documents\Visual Studio 2010\Projects\YYMAspNetWeb\YYMAspNetWeb\Login.aspx.cs:13
ASP.login_aspx..ctor() in c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\8bfdeb29\c1c9e087\App_Web_thk0iqz2.0.cs:0
__ASP.FastObjectFactory_app_web_thk0iqz2.Create_ASP_login_aspx() in c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\8bfdeb29\c1c9e087\App_Web_thk0iqz2.1.cs:0
System.Web.Compilation.BuildResultCompiledType.CreateInstance() +32
System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) +109
System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +31
System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +40
System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +167
System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +128
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184





...全文
221 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Simon_Ye 2012-06-07
  • 打赏
  • 举报
回复
没什么引用了,就这几个就可以了,不过如果你还有个common 公共的项 的话也可以引用进去。
loveye0215 2012-06-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

你如果硬性添加了DAL项目的引用,那使用工厂模式就没多大意思了。不如直接new一个DAL对象出来。

如果你没有添加引用,那要确保你DAL项目的编译输出是指向的网站的bin目录而不是它自己的bin目录。

你的配置文件里的DAL名称是YYMAspNet_DAL, 但报错找不到的程序集是YYMAspNet_DB?
你确信这个配置是正确的吗?
[/Quote]



配置是正确的。
引用我不太清楚是否添加了。不过在我的DAL 层里面引用有 IDAL , DB层,model实体层。
如果还要添加引用 是添加哪一个引用呢?

我按照你说的“DAL项目的编译输出是指向的网站的bin目录而不是它自己的bin目录。”
将编译输出指向网站的bin目录,就没报错了。可以运行出来了。

bwangel 2012-06-06
  • 打赏
  • 举报
回复
你如果硬性添加了DAL项目的引用,那使用工厂模式就没多大意思了。不如直接new一个DAL对象出来。

如果你没有添加引用,那要确保你DAL项目的编译输出是指向的网站的bin目录而不是它自己的bin目录。

你的配置文件里的DAL名称是YYMAspNet_DAL, 但报错找不到的程序集是YYMAspNet_DB?
你确信这个配置是正确的吗?
yuji821 2012-06-06
  • 打赏
  • 举报
回复
以前也经常碰到
主要是你生成的dll名称,项目属性里是否有更改

<add key="ServiceDAL" value="YYMAspNet_DAL"/> 配置是否正确
loveye0215 2012-06-06
  • 打赏
  • 举报
回复
大侠们 在哪里啊,加分加分
Maticsoft 自动化智能软件系列 ≡≡≡≡≡≡≡≡≡≡≡≡≡『软件信息』≡≡≡≡≡≡≡≡≡≡≡≡≡ 软件名称: 动软.Net代码生成器 软件版本: 2.41 软件语言: 简体中文 运行环境: Win2003/XP/2000 .NET Framework 2.0 软件大小: 4.5M 开 发 商: http://www.maticsoft.com 发布日期: 2009-07-19 ≡≡≡≡≡≡≡≡≡≡≡≡≡『软件简介』≡≡≡≡≡≡≡≡≡≡≡≡≡ 动软.Net代码生成器Codematic 是一款为C#数据库程序员设计的自动代码生成器,Codematic 生成的代码基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。采用Model+DAL +BLL+Web 的设计,主要实现在对应数据库中表的基类代码的自动生成,包括生成属性、添加、修改、删除、查询、存在性、Model 类构造等基础代码片断,支持不同3种架构代码生成,使程序员可以节省大量机械录入的时间和重复劳动,而将精力集中于核心业务逻辑的开发。 Codematic 同时提供方便的多类型数据库管理,查询分析器,SQL脚本生成,存储过程生成,数据库文档生成,Web项目发布,代码批量自动输出等多项开发工作中常用到的功能,您可以很方便轻松地进行项目开发。 版本更新: 1. 完善了单类结构中非SQL数据库可能存在“@”,括号"[" 和 "]的问题 2. 完善了“GetList”方法缺少三参数重载。 3. 完善了浏览数据库数据报错问题。 4. 数据库名和表实现按名称排序。 5. 页面代码生成包含主键的问题。 6. 增加了Access数据库字段类型映射机制。 7. 增加了查看Oracle的存储过程。 在线帮助:http://www.maticsoft.com 此版本是一个开发中的版本,一些功能尚未彻底完成,难免有一些bug,如有问题请及时反馈。 可以发邮件至maticsoft@sohu.com 或者来 bbs.maticsoft.com交流。 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ Builder 代码生成插件源码 2.1版本以后增加了代码插件机制,支持可扩展的代码生成插件,用户可以定制自己的代码生成的插件,根据接口开发自己的代码生成方式,按用户需求进行代码生成。 Codematic_Data.MDF 是生成的项目所用的数据库文件,登录用户名:admin 密码:1

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧