我正在尝试在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
错误。
答案 0 :(得分:2)
配置文件的名称需要与ExcelDNA创建的.XLL文件的名称相匹配。
e.g。
MyApp-AddIn.xll
- &gt; MyApp-AddIn.xll.config
MyApp-AddIn64.xll
- &gt; MyApp-AddIn64.xll.config
答案 1 :(得分:1)
$responce[$size-1] = array_merge($responce[$size-1] , array(
$data['dorder_id'],
$data['dpaid_status'],
$data['commission']
) );
文件,它们属于父可执行文件。app.config
文件。app.config
在运行时使用的任何配置文件(如果有)中都不存在。您可以先检查是否ConnectionCSV
并在密钥不存在时警告用户来验证这一点。在您的情况下,最好将连接字符串存储在用户的注册表中。致白:
<强>更新强>:
我刚刚在MSDN上找到了这个页面,它描述了您的确切问题,并解释了如何将ConfigurationManager.ConnectionStrings["ConnectionCSV"] != null
文件与Office加载项一起使用:https://msdn.microsoft.com/en-us/library/16e74h9c.aspx
具体做法是:
在[app.config filename]框中,键入与程序集相同的名称以及扩展名.config。例如,名为
app.config
的Excel项目程序集的配置文件将命名为ExcelWorkbook1.dll
。