反射-初始值设定项引发异常

这几天在弄petshop的模型,为将来的大项目做准备。一个个补充问题终于攻克了。真是不容易。最后我把项目重新COPY好。当

加载完所有必要的项目的时候,发现运行的时候出现了 "BLL.MsgQQ"类型初始值设定项引发异常。 这个错误。修改BLL调试发

现是 private static readonly IMessaging.IOrder orderQueue = MessagingFactory.QueueAccess.CreateOrder(); 这句出

了问题。

明显是消息队列工厂的反射出了问题,在检查了工厂类和web.config之后都没有发现是任何的问题。工厂反射的类是对的。配

置文件反射的数据集也没有任何问题。究竟是哪里出现了问题呢?

GOOGLE之后,终于找到了是WEB站点下的Bin文件夹里必须要有MessagingFactory的DLL文件。这个引用是必须的,因为在

web.config里反射的数据集也是要从web站点的bin文件夹里获取的。因为我当初没有引用,所以BLL得不到反射的数据集。所以

就报了这样的错。下面是引用网上的观点:

<--这部分才是转载-->
按照PetShop的架构,是DALFactory程序集里通过反射创建针对特定数据访问层里的对应类实例,这样BLL调用接口时就知道调

用这个对应类实例里的实现方法。
    而反射动态加载程序集是通过这种方法 Assembly.Load("程序集").CreateInstance("命名空间.类"),其中的“程序集”

读取的是Web层bin文件夹下对应的 dll,即反射加载的程序集dll在Web层的bin文件夹必须有,不然就会出现如题的错误。问题

解决了~^_^
    出现这种错误的另两种情况,这也是在网上看到的,一起写下来。
    一、Web.config配置错误。
          在DALFactory程序集里的DataAccess类里,通过
          private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];
          来获得程序集的名称的。
          在Web.config里我的配置如下:
          <appSettings>
          <add key="WebDAL" value="PDMS.SQLServerDAL"/>
          </appSettings>
    二、程序集名称和默认命名空间错误。
          在各个程序集右键--属性,看看程序集名称和默认命名空间有没有写错。这个问题也可能导致如题的错误~~
<--这部分才是转载-->

最近一直在学习。感觉最近学习的气氛有上来了,很好。继续加油!希望以后的我再次看到这篇文的时候能想起现在的学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值