【问题标题】:MVVM - ConfigurationManager creates "Object reference not set to an instance of an object" errorMVVM - ConfigurationManager 创建“对象引用未设置为对象的实例”错误
【发布时间】:2018-01-16 07:44:21
【问题描述】:

我有这个问题,它不是阻塞,但我想删除它。

在我的 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)

谢谢。

【问题讨论】:

  • 您的 App.config 文件是否包含键为 XXXXX 的连接字符串?
  • 确实,字符串检索得很好。我只想删除 Mainwindow.xaml 中的警告消息“对象引用未设置为对象的实例”

标签: c# wpf visual-studio mvvm view


【解决方案1】:

你需要做的就是添加这些行:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-09
      • 2012-08-31
      • 2011-11-21
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多