【问题标题】:WCF Service - instantiating a classWCF 服务 - 实例化一个类
【发布时间】:2012-09-18 15:53:20
【问题描述】:

我正在创建 WCF 服务 (.NET 4.0/c#)...我向项目中添加了一个新类,并尝试像这样实例化它:

  MyNewClass inst = new MyNewClass();

...但我在该行收到了著名的“对象引用未设置对象的实例”消息。

我做错了什么?

编辑:

课程如下:

using System;
using bla, bla, blah...

public class MyNewClass
{
  private string cnn1 = ConfigurationManager.ConnectionStrings["connection_string_1"].ConnectionString;
  private string cnn2 = ConfigurationManager.ConnectionStrings["connection_string_2"].ConnectionString;

  public string Conn(string s)
  {
    string cnn = string.Empty;

    switch (s)
    {
      case "Server1":
        cnn = cnn1;
        break;
      case "Server2":
        cnn = cnn2;
        break;
    }

    return cnn;

  }

}

【问题讨论】:

  • 您在执行此 specific 行时看到该错误?我想我会看看那个类的构造函数中的代码。
  • 构造函数内部可能有问题
  • 会不会是您的连接字符串/配置文件有错误?

标签: c# wcf class dll reference


【解决方案1】:

您应该传入一个配置对象,而不是调用 ConfigurationManager。这将允许您使用 appconfig / webconfig 的独立类。

例如,也许

public MyClass(string conn1, string conn2)
{...}

或者至少在访问属性之前检查 null,

例如,将其更改为在构造函数中

private string cnn1;

public MyClass()
{
    if (ConfigurationManager.ConnectionStrings["connection_string_1"] != null)
    cnn1 = ConfigurationManager.ConnectionStrings["connection_string_1"].ConnectionString;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 2012-09-17
    • 1970-01-01
    相关资源
    最近更新 更多