2

私のアプリケーションから、意味をなさないように思われるエラーレポートがいくつかあります。コードの他の部分から呼び出される多数のパブリック静的メソッドを持つ静的クラスがあります。これらのメソッドのほとんどは、XMLドキュメントに要素を作成します。

これらのメソッドのほとんどの最初の行は、この同じクラスのプライベート静的メソッドの呼び出しです。このメソッドは、XMLドキュメントに要素を作成し、次のように返します。

private static XmlElement BuildCmd(string name)
{
  XmlElement e = OtherClass.NewElement("CMD");
  e.SetAttribute("type", name);
  return e;
}

public static uint SendFlightReport(FlightData info, AircraftInfo aInfo)
{
  XmlElement cmd = BuildCmd("pirep");
  ....
  some other stuff
  ....
}

例外によって生成されたスタックダンプはすべて、BuildCmdを呼び出す行を問題のある行として報告しますが、これは意味がありません-呼び出し時にnullポインター(またはC#ではオブジェクト参照がオブジェクトのインスタンスに設定されていない)を使用するにはどうすればよいですか?静的メソッド?

編集:尋ねた人のために、ここにOtherClass.NewElementへのコードがあります:

public class OtherClass {

   private readonly XmlDocument doc = new XmlDocument();

   public XmlElement NewElement(string name) {
      lock (doc)
        return doc.CreateElement(name);
   }
}
4

1 に答える 1

-1

リリースビルドを実行していると思われます。その場合、コンパイラの最適化により、行番号がわずかにずれていることがよくあります。デバッグ ビルドを実行してみてください。おそらく、例外が実際には 1 行目または 2 行目にスローされていることに気付くでしょう。.... some other stuff ....

たとえば、

https://stackoverflow.com/a/114854/385844

http://social.msdn.microsoft.com/Forums/zh/vsdebug/thread/afb7ae70-3e0c-4ea9-86ab-633fe1f9cf6a (VB.NET、それでも...)

http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/6af62159-fe6b-4554-8e46-d2b6c06fa253

于 2012-04-13T02:39:30.763 に答える