1. 程式人生 > >啟動除錯, 型別初始值設定引發異常

啟動除錯, 型別初始值設定引發異常

一次做Winform的資料查詢頁面. 使用的是原有的三層架構, 在Form1中直接使用工廠反射呼叫了IBLL介面類的方法. 執行後報錯: "型別初始值設定引發異常"


感覺應該是新建專案Form1的問題, 因為該三層架構在另一個Winform程式中執行正常. 在另一個BS程式中也執行正常.


於是開始了修改, 具體過程如下(基本是自己的腦殘行為記錄, 建議直接看結尾):


1.懷疑是語句錯誤, 對比兩個Winform程式的語句. 但沒發現什麼問題.


2.懷疑呼叫的靜態變數需要在Form1的建構函式中初始化一次, 才能正常使用, 於是在Form1的建構函式末尾又給該IBLL靜態變數進行了一次賦值, 沒有效果


3.懷疑是Form必須完全載入後, 才能呼叫介面物件(怎麼可能會有這種要求?). 於是在Form1中新增按鈕, 在載入完Form後, 點選按鈕建立IBLL介面物件, 呼叫方法, 繼續報錯.


4.懷疑Form的啟動窗體不能呼叫介面(窗體都一樣吧), 在Form1載入完後, 點選按鈕開啟Form2, 然後點選Form2的按鈕, 建立IBLL物件,呼叫方法, 繼續報錯


5.沒有辦法, 直接呼叫BLL層方法, 追蹤BLL層程式碼. 發現正常的Winform程式中, BLL中的例項化IDAL物件的語句都正常執行(這個BLL類中有7個IDAL介面變數), 而第二個程式在執行第一個建立IDAL物件語句後就直接跳出BLL頁面. 問題就在這裡了吧


6.直接在Form1中呼叫DAL層方法, 追蹤斷點, 在DAL層的初始化sql連結字串語句的位置跳出, 發現DAL層中sql連線字串是使用ConfigurationManager.....



好吧, 我新建的Winform程式沒有寫配置檔案...


總結:
型別初始值引發異常, 採用事後諸葛理解法, 應該是指在我們呼叫的某一個物件或方法內的一個初始化語句發生了錯誤.
放在本案例中, 呼叫IBLL介面時, 初始化IBLL介面引發了異常, 而該異常是初始化IDAL介面引發的異常, 而IDAL介面初始化異常是由於DAL層中sql連結字串的初始化引發的異常--沒有對應的配置檔案資料
介面的使用一定程度上提高了開發效率, 有利於團隊開發, 但如果其中某一個環節出了問題, 又很難除錯. 
這次的問題在於, DAL層告訴UI層, 你需要一個config檔案, 但俺忘了...

相關推薦

啟動除錯, 型別初始設定引發異常

一次做Winform的資料查詢頁面. 使用的是原有的三層架構, 在Form1中直接使用工廠反射呼叫了IBLL介面類的方法. 執行後報錯: "型別初始值設定引發異常" 感覺應該是新建專案Form1的問題, 因為該三層架構在另一個Winform程式中執行正常. 在另一個BS程式

"<Module>"的型別初始設定引發異常

"< Module >"的型別初始值設定項引發異常 1、今天電腦開機系統自動升級之後,發現開啟VS2012就會出現該問題。 2、使用VS2012修復之後,問題沒有解決。 3、重新安裝VS2012還是不行,很是納悶。 4、將 .NET formwork4.5 和 4.6.2解

OpenCVSharp學習---“OpenCvSharp.NativeMethods”的型別初始設定引發異常

環境:WIN7  VS2015 問題:執行後,出現:其他資訊: “OpenCvSharp.NativeMethods”的型別初始值設定項引發異常。 解決辦法: 但是,跟網上很多人遇到的問題一樣,也用了上面的解決辦法,還是無法解決。 後面查VS2015,發現是VS2015是安

Oracle連線 型別初始設定引發異常 解決方法

異常如下所示: 基本上查閱了網上面所有的解決方案後,仍然不能解決。得出的此方案。建議大家先去查閱別的。 使用的Oracle.DataAccess.DLL的版本號出現的問題。正確的是使用v2版本,當前是v4版本,所以會報錯。 出現的原因:當前使用的是11g客戶端 ,前段時

【WinForm】“System.Data.SqlClient.SqlConnection”的型別初始設定引發異常,無法識別的配置節 system.serviceModel

出現問題的原因: 在本機上沒有出現問題,讓一個同事測試的時候,在另外一臺電腦上出現連線資料庫失敗,系統不能開啟的問題 在網上搜了一下,有說是資料庫連線字串錯誤的,有說app.config檔案配置不匹配等原因的。總之是沒有解決這個問題 出現問題的錯誤資訊,不全,只給出了主要的資訊:如下 錯誤描述

C#中異常:“The type initializer to throw an exception(型別初始設定引發異常)”的簡單分析與解決方法

對於C#中異常:“The type initializer to throw an exception(型別初始值設定項引發異常)”的簡單分析,目前本人分析兩種情況,如下: 情況一: 其實麒麟.NET的這篇文章主要講解分析了靜態成員的方面,總的說就是:型別初始化或訪問

""的型別初始設定引發異常的解決辦法

1、C:\因人而異。。。\AppData\Roaming\Microsoft下的visualstdio檔案刪年掉就可以 2、Start->Microsoft Visual Studio 2010->Visual Studio Tools-->Visual studio Command P

ASP.NET 型別初始設定引發異常

連續兩天都為這個執行時錯誤“型別初始值設定項引發異常”而煩惱,除錯也不知道哪裡出了問題。上網Google一下,一大堆相同的問題,可是按照那些方法折騰來折騰去,問題還是一樣。最後在CSDN上發帖子問了,果然“重賞之下必有勇夫”,很快就有高手回覆了,問題也隨著解決了。哈哈。在此

zhgl 錯誤 其他資訊: “Oracle.DataAccess.Client.OracleConnection”的型別初始設定引發異常

帖子 是專案環境原因 需要安裝ODAC 總共倆個版本X64 和 X86 自己的作業系統如果是X64位的,需要安裝2個包;如果是32位的安裝X86就好了 最後還要配置 TNS 將原先C

【轉】型別初始設定引發異常

轉自: http://www.cnblogs.com/kirinboy/archive/2007/11/07/951903.html -上午開啟VS編譯程式的時候,突然出現了這個執行時錯誤“型別初始值設定項引發異常”。昨天還沒有這個錯誤呢,今天就突然出現,搞得我一頭霧水。上網搜了一下,發現有很多人遇到了這

EF中System.Data.Entity.Internal.AppConfig的型別初始設定引發異常

使用Entity的時候遇到的一個錯 問題出在專案的App.config中 解決: 1.configSections要寫在最頂端 2. 其中的incariantName會變成incariantNodeName 這個是安裝Entity的時候自動生成的,你如果記得這句話,直接換

System.Data.SqlClient.SqlConnection”的型別初始設定引發異常

string str = "data source=localhost;database=xxx;uid=sa;pwd=123"; conn = new SqlConnection(str);//執行到這一步的時候,就報上面的錯誤,而同樣的程式碼在別的程式卻沒有問題,網上查

GDAL C# “OSGeo.GDAL.GdalPINVOKE”的型別初始設定引發異常 解決方法

在使用C#版本的GDAL開發的時候,編譯正常,啟動的時候就會提示:“OSGeo.GDAL.GdalPINVOKE”的型別初始值設定項引發異常。“ 對於這個問題,原因主要就是沒有找到dll導致的,在使用的時候不但要把C#的那八個dll拷貝到exe所在目錄

類型初始設定引發異常的解決方法

實例 nbsp fig str winform 引用 setting .config orm 1、檢查類中的靜態字段或屬性,確保其能夠正常的完成初始化 2、在類的構造函數中,確保其訪問的屬性或字段都已經完成初始化 3、如果是WinForm中,將訪問的窗體控件的語句寫在初始化

“Microsoft.SqlServer.Management.Dmf.PolicyStore”的理性初始設定引發異常.

man pro 設定 sqlserver sql trace soft sof rac SQLServer2008 錯誤:“Microsoft.SqlServer.Management.Dmf.PolicyStore”的理性初始值設定項引發異常。 解決辦法: 下載Mic

Net使用RdKafka引發異常RdKafka.Internal.LibRdKafka 的類型初始設定引發異常

edi 異常 lib internal not .lib tail except asp 在Net中VS2015用RdKafka組件開發消息發布和消費,引發下面的異常 RdKafka.Internal.LibRdKafka 的類型初始值設定項引發異常System.Type

Emgu.CV.CvInvoke的類型初始設定引發異常

到你 兩個 環境變量 設定 c盤 添加 文件夾 安裝 可能 被這個問題蛋疼了一個下午,終於解決了。我的服務器出現這個問題的原因:可能是沒有安裝emgucv。 解決方法: 1.下載並安裝emgucv 下載地址:鏈接: https://pan.baidu.com/s/1slyW

C# 出現System.TypeInitializationException類型初始設定引發異常

log pan blog body 提示 不同 pos conf system 描述:提示在DAL.SQLHepler出現該異常。 解決:connectionString寫在AppConfig裏面,但是在引用的時候寫錯name。註意ConnectionStrings["XX

“SAP.Middleware.Connector.RfcDestinationManager”的類型初始設定引發異常

ram 針對 href dll true 報錯 strong startup https 在VS2015中使用SAP Connector 3.0(SapNco)的.net4.0x86版本開發時,程序運行到RfcDestinationManager.TryGetDestina

MathWorks.MATLAB.NET.Arrays.MWArray”的類型初始設定引發異常 解決方法

dll clas 設定 nbsp war work works body 重新安裝 原因 用的是matlab7運行時,後面又安裝了matlab11,後面又重新安裝了matlab7運行時,c盤下就有二個運行時的版本了,程序引用了後面的那個,編譯後就出上面的問題 解決方法