0

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;

  }

}
4

1 に答える 1

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;
}
于 2012-09-18T16:46:50.147 に答える