机房重构【C#】——七层登录问题汇总与反射

一、找不要ConfigurationManager。

这个问题我在DAL层遇到了,解决了,但是当Factory又遇到时,我又忘了是怎么解决了,重复的错误必须干掉。

解决步骤:1.首先要和其他层之间建立正确的引用关系,拿Facotry层来说,需要引用IDAL层和Enitity层

2.这样还不够,你还需要切换到程序集这部分,勾选System.Configuration这项。

这样Manager才能点出来呢。

 

二、配置文件+反射到底是什么

配置文件:这个问题其实和问题一找不到的ConfigurationManager有密切的关系。我们先从配置文件说起。

我们把有可能需要改动的字符串写在配置文件中,例如数据库连接字符串。这样,当我们需要改变数据库连接时,只需在配置文件中进行更改,而不需要再打开源码中的某某模块。这一做法显然非常具有灵活性,为维护人员后期更新和维护提供帮助。

反射:上面说到了在配置文件里更改数据库连接。而起到这个作用的正是反射,反射利用字符串来实例化对象,因为变量是可以更换的,通过更换字符串便可以更换需求了。下面是七层中Factory层应用反射举例

return返回的是数据库的DAL,如果上图中在方框内更改数据库,那么在最后一行return时,返回的就是更改后的DAL。

三,错误:无法直接启动带有类库输出类型的项目

这个问题发生在我敲完所有窗体并以UI层为启动项运行时。解决此问题以下两点足够:

1.右键UI层的属性,在方框中确认选择的是WIndows 应用程序

2.七层中除了UI层其他的层都是类库形式的项目,只有UI层是WIndows窗体应用程序。所以你要确保UI的项目类型你没建错。

笔者当时就建的是类库项目,所以当敲SQLHelper时,我很懵逼为啥UI层没有配置文件App.config(下图中的配置文件是我自己建的)。直到我发现我缺少Program.cs文件时,才懂得,原来我少的不止一个。Program.cs文件中的代码是自动生成的,你可以从新建立一个Winform应用程序,然后把P文件中的代码复制一下。

解决之后,运行成功

虽说自己粗心大意,走了很多弯路,不过我也有个额外收获。就是虽然项目类型不同,但是其实我们可以通过自己手动添加把这个类型的项目更换成其他类型的项目。

四、错误:系统找不到指定文件

当我输入正确的用户名和密码后,报出如下错误

这个问题分两种情况,我们一个一个来看

<1>系统找不到LoginDAL或它的某一个依赖项,我们可以分析出来是少东西,DLL文件不存在或丢失。怎么加呢?

首先我们右键解决方案→在文件资源管理器中打开文件夹

打开后类似如下图

打开LoginDAL→bin→Debug,然后复制方框中的文件

复制到LoginUI文件的如下地址中

这下再重新生成一下解决方案,运行后,问题就解决了!

 

<2>加载DLL文件出错,文件存在,但是未正确加载。

解决办法:右击D层-属性-生成-输出路径-点击浏览改到U层的Bin里边即可

五、错误:”System.NullReferenceException”类型的未经处理的异常。如下图

这个问题同样发生在帐号和密码正确后点击登录时。要解决这个问题,你要知道下图工厂层方块中的内容是干嘛呢

方块这一行代码目的是通过配置文件来调用DAL层的操作。而DAL层你需要通过LoginDal类调取,方块中的名称就是DAL项目中的同名类,这个类名写错,就死活都运行不出来了。

笔者技术还不到家,欢迎各位读者斧正!

猜你喜欢

转载自blog.csdn.net/Sophia_0331/article/details/81348351
今日推荐