[英]System.NullReferenceException in a class library
我正在嘗試在app.config中配置一些連接字符串,但始終收到此錯誤消息,
System.NullReferenceException: Object reference not set to an instance of an object.
我在網絡上看過許多解決方案,但沒有直接適用的方法,
System.Configuration
並正在使用ConfigurationManager
唯一的區別是該項目是一個類庫,我將通過ExcelDNA將其公開給Excel。
為了使此功能與Excel配合使用,我需要做些特別的事情嗎?
這是XML的代碼段,
<configuration>
<connectionStrings>
<add name="ConnectionCSV" providerName="System.Data.OleDb" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;" />
</connectionStrings>
</configuration>
這是源代碼(已using System.Configuration
以及必要的參考),
string constr = ConfigurationManager.ConnectionStrings["ConnectionCSV"].ConnectionString;
上一行拋出Object reference not set to an instance of an object
錯誤Object reference not set to an instance of an object
的Object reference not set to an instance of an object
。
配置文件的名稱必須與ExcelDNA創建的.XLL文件的名稱匹配。
例如
MyApp-AddIn.xll
> MyApp-AddIn.xll.config
MyApp-AddIn64.xll
> MyApp-AddIn64.xll.config
app.config
文件,它們屬於父可執行文件。 app.config
文件。 ConnectionCSV
在運行時使用的任何配置文件(如果有)中都不存在。 您可以通過首先檢查ConfigurationManager.ConnectionStrings["ConnectionCSV"] != null
並警告用戶密鑰是否不存在來驗證這一點。 在您的情況下,最好將連接字符串存儲在用戶的注冊表中。 白衣:
更新 :
我剛剛發現這個MSDN頁面描述您的具體問題,並解釋了如何使用app.config
文件與Office加載項: https://msdn.microsoft.com/en-us/library/16e74h9c.aspx
特別:
在[app.config文件名]框中,鍵入與程序集相同的名稱以及擴展名.config。 例如,一個名為
ExcelWorkbook1.dll
的Excel項目程序集的配置文件將命名為ExcelWorkbook1.dll.config
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.