Assembly.GetExecutingAssembly()抛出NullReferenceException

时间:2017-02-05 16:33:13

标签: c# .net visual-studio-2017

在我的" Translator" -Class的构造函数方法中,我需要初始化ResourceManager以访问我后来需要的所有字符串。但是当我尝试获取当前正在执行的程序集时,它会失败并显示System.NullReferenceException occurred HResult=0x80004003 Message=Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. Source=MyStreamingPlayer

以下代码是我的类构造函数:

class Translator
{
    public Form[] FormsToTranslate { get; }
    ResourceManager rm;

    public Translator(Form form, string language)
    {
        FormsToTranslate[0] = form;
        Assembly asm = Assembly.GetExecutingAssembly();

        string resname = asm.GetName().Name + ".lang_" + language;
        rm = new ResourceManager(resname, asm);
    }
}

并且Assembly asm = Assembly.GetExecutingAssembly();是使用System.NullReferenceException失败的行。 几个小时前我做了一些修改,下面的代码工作正常:

class Translator
{
    public Form FormToTranslate { get; set; }
    ResourceManager rm;

    public Translator(Form form, string language)
    {
        FormToTranslate = form;
        Assembly asm = Assembly.GetExecutingAssembly();
        string resname = asm.GetName().Name + ".lang_" + language;
        rm = new ResourceManager(resname, asm);
    }
}

我不知道发生了什么,但如果我将这部分改回原来的状态,一切正常。据我所知,我没有改变任何可能导致Assembly.GetExecutingAssembly()中断NullReferenceException的内容。

0 个答案:

没有答案