在我的" 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的内容。