<ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>


      ?Put aside the fog and see the essence <>



      解決問(wèn)題之前,要明白問(wèn)題為什么會(huì)出現(xiàn)

      如果只想單純的解決這個(gè)問(wèn)題的話,直接把錯(cuò)誤復(fù)制然后百度就會(huì)出現(xiàn)很多很多解決方案

      如果你想明白為什么會(huì)出現(xiàn)這個(gè)錯(cuò)誤

      ?

      1、首先了解反射的機(jī)制

      任何類庫(kù)編譯完成之后都會(huì)生成.dll文件,反射就是從當(dāng)前反射所在的.dll(DBZQ.Answer.Factory.dll)文件查找.dll

      2、我們來(lái)看一下程序的代碼和文件

      web.config



      DalFacoty代碼



      我們找到web層的bin目錄下,查看一下所有的程序集



      ?很容易就會(huì)看出來(lái),web下的bin目錄并沒(méi)有DBZQ.Answer.Dal.dll

      3、為什么沒(méi)有DBZQ.Answer.Dal.dll?

      我們可以發(fā)現(xiàn)web/bin下有很多dll文件,就是沒(méi)有DBZQ.Answer.Dal.dll文件

      為什么?

      我們先看看程序中有多少層

      ?

      然后和dll文件仔細(xì)對(duì)比一下,發(fā)現(xiàn)只有9個(gè)dll文件,少了兩個(gè)(DBZQ.Answer.Test和DBZQ.Answer.Dal)

      DBZQ.Answer.Test只是我平時(shí)寫項(xiàng)目時(shí)做測(cè)試用的,沒(méi)有任何層調(diào)用了Test層,會(huì)不會(huì)和引用有關(guān)系?

      然后我們仔細(xì)理一下調(diào)用關(guān)系



      不難發(fā)現(xiàn),web層無(wú)論是直接還是間接,都引用了所有層,除了Dal層,這是我們就可以大膽的猜測(cè),可能是引用的關(guān)系

      會(huì)心一笑,這有何難?接下來(lái)我就做了一件事



      ?



      然后重新生成解決方案,打開(kāi)web/bin

      ?


      嗯~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~????????

      看來(lái)事情并沒(méi)有我想的這么簡(jiǎn)單,還是沒(méi)有DBZQ.Answer.Dal.dll

      吶,為什么其他的層被web層間接引用了可以出現(xiàn).dll文件??而dal層不行

      既然間接引用不行那我們直接引用試一下,先取消Factory層對(duì)Dal層的引用



      重新生成解決方案

      ?

      看來(lái)還是老大的引用最頂用

      那這是為什么呢?為什么間接引用又不行了呢?

      ?仔細(xì)思考之下我想到了一個(gè)問(wèn)題,就是我其他的間接引用都是真正的要引用,因?yàn)槲乙玫狡渌麑拥暮瘮?shù)所以我要引用

      并不只是添加一個(gè)引用,而是引用加調(diào)用

      那我們?cè)賮?lái)嘗試一下,先取消web層對(duì)dal層的引用

      然后同樣是工廠類,添加對(duì)Dal層的引用,重新生成解決方案



      ok,不存在,我們嘗試著在DalFactory中聲明一個(gè)Dal層的對(duì)象試一下



      重新生成解決方案?。。?br>


      果然出現(xiàn)了

      看來(lái)這個(gè)就是編譯機(jī)制的問(wèn)題,如果是直接引用,所引用的dll文件會(huì)直接出現(xiàn)在bin目錄下,

      如果是間接引用,必須要有明確的調(diào)用代碼,才會(huì)將dll文件添加到bin文件加的目錄下,

      接下來(lái)說(shuō)一下問(wèn)題最開(kāi)始的解決方案,就是缺少dll文件造成的

      1、右鍵dal層,屬性-->生成-->輸出路徑 改為web/bin

      2、將dal/bin/debug下的dll文件和pdb文件復(fù)制到web/bin

      3、web直接添加對(duì)dll文件的引用(因?yàn)閷雍蛯又g的調(diào)用關(guān)系原因、我個(gè)人感覺(jué)不太好,僅僅只是個(gè)人感覺(jué))

      雖然只是一個(gè)小問(wèn)題,百度一搜也很快可以解決,但是我還是想說(shuō)一句

      解決問(wèn)題要明白問(wèn)題為什么會(huì)出現(xiàn),只有不斷的探索才能成長(zhǎng)

      ?

      友情鏈接
      ioDraw流程圖
      API參考文檔
      OK工具箱
      云服務(wù)器優(yōu)惠
      阿里云優(yōu)惠券
      騰訊云優(yōu)惠券
      京東云優(yōu)惠券
      站點(diǎn)信息
      問(wèn)題反饋
      郵箱:[email protected]
      QQ群:637538335
      關(guān)注微信

        <ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>
          操女人的逼| 超碰手机在线 | 超碰在线免费97 | 国产人人摸 | www免费视频 | 少妇做爰XXXⅩ性XXX | 成人在线无码观看视频 | 樱花草国产18久久久久 | 被仇人调教成禁脔h虐第1集 | 日日夜夜天天操 |