创建类的新实例时出现NullReferenceException

时间:2014-01-07 18:40:17

标签: c# nullreferenceexception static-constructor

据我所知,错误发生在以下一行:

SomeClass foo = new SomeClass();
foo.getSomeStuff(id1,id2,id3, connectionString, UserName, Password, out html, out xml);

以下是SomeClass的基本外观:

public class SomeClass
{
    private static System.AppDomain SomeDomain { get; set; }
    private static SomeUtility utility { get; set; }

    static SomeClass()
    {
        InitializeSomeClass();
    }


    private static void InitializeSomeClass()
    {
        //code here
        utility = (SomeUtility)SomeDomain.CreateInstanceAndUnwrap(Assembly.GetExecutingAssembly().FullName, "SomeUtility");
    }

    public void getSomeStuff(int id1, int id2, int id3, string connectionString, string UserName, string Password, out string html, out string xml)
    {
        html = xml = "";
        utility.ExtractContent(id1, id2, id3, connectionString, UserName, Password, out html, out xml);
    }

}

在将代码翻译成更一般的术语时,我误解了代码。我纠正了它。这有什么意义吗?

我对静态构造函数的经验很少,但我的直觉告诉我问题可能在某处。

2 个答案:

答案 0 :(得分:0)

在您的示例代码中,执行以下行时从未初始化SomeDomain属性:

utility = (SomeUtility)SomeDomain.CreateInstanceAndUnwrap(...)

更一般地说,查看堆栈跟踪和/或在调试器下运行 - 您很快就会看到哪条线路出现故障以及原因。

答案 1 :(得分:0)

我相信我发现了这个问题。它发生在第三方程序集中的部分:“// code here”。出于安全考虑,我之前没有提供代码,但我会与第三方合作解决问题。谢谢大家!