MVVM - ConfigurationManager创建“未将对象引用设置为对象实例”错误

时间:2017-08-08 16:19:16

标签: c# wpf visual-studio mvvm view

我有这个问题,它没有阻止,但我想删除它。

在我的 MainWindow.xaml 中,我强调了这一行:

<views:XXXView Grid.Row="0"  Grid.Column="1" x:Name = "XXXViewControl"  />

下划线消息显示“对象引用未设置为对象的实例

我回溯了我的错误,我发现在 XXXViewControl.cs 这一行:

public String CONNEXION_BD_GEOPOL = ConfigurationManager.ConnectionStrings["XXXXX"].ConnectionString;

如果删除此行,带下划线的消息将消失

另外,在我的App.Config中有ConnectionString行,我可以很好地检索它:

  <connectionStrings>
         <add name="XXXXX" connectionString="xxxxxxxx" providerName="System.Data.OracleClient" />
  </connectionStrings>

我需要帮助才能解决此问题,而无需删除ConfigurationManager行。

这个堆栈用户解决了这个问题,但他正在使用VBA,我不明白他的意思: How to implement appSettings in MVVM

感谢。

2 个答案:

答案 0 :(得分:0)

您的App.config必须包含您通过ConfigurationManager请求的连接字符串:

<connectionStrings>
    <add name="MyContext" connectionString="..."
         providerName="System.Data.SqlClient" />
</connectionStrings>

现在您可以在代码中获取连接字符串:

public String CONNEXION_BD_GEOPOL = ConfigurationManager.ConnectionStrings["MyContext"].ConnectionString;

答案 1 :(得分:0)

您需要做的就是添加以下几行:

#if DEBUG
if (DesignerProperties.GetIsInDesignMode(new DependencyObject())) return;
#endif  

这将停止执行,您的设计师将正常工作,并且在执行应用程序时也不会产生影响。