我的代码以前工作正常,但现在我运行它;它抛出了这个例外:
“System.TypeInitializationException”类型的未处理异常 发生在Debug Chamber.exe中附加信息:类型 'varBank'的初始化程序引发了异常。
甚至更奇怪的是,除了添加这个类之外我什么都没改变:
public class readParameters
{
public static void readLog(int start, int end)
{
for (int x = start; x < end; x++)
{
}
}
public static void nextLine()
{
string[,] logArr = new string[4, 5];
}
}
有问题的行在下面的栏中突出显示
/// </data bank>
public class varBank
{
public static string logInput { get; set; }
public static PathType FilePath { get; private set; }
public static EventLogReader evl = new EventLogReader(logInput, FilePath);
public static EventRecord bsnRecord = evl.ReadEvent();
}
/// </data bank>
namespace EventLogInfoReader
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter Log Location: ");
varBank.logInput = Console.ReadLine();
Console.WriteLine("Enter Read Parameters: ");
int i = 1;
while (++i > 0)
{
Console.WriteLine("Enter Property: ");
string CommandInput = Console.ReadLine();
getInfo.callInfo(CommandInput);
}
}
}
}
答案 0 :(得分:0)
该异常表示从静态构造函数或字段初始值设定项引发异常。我怀疑它位于evl
的初始值设定项中,因为它引用了没有设置初始值的静态属性(它们将是null
)。
我会将该代码移动到静态构造函数,以便您可以更好地进行错误处理和/或记录。 evl
和bsnRecord
都有静态初始化程序,它们容易受到运行时异常的影响,不应该取消选中。
我还质疑为什么你有使用其他静态属性初始化的静态属性。如果客户端代码设置了FilePath
属性,那么您期望发生什么?