使用类型而不是对象时,如何获取NullReferenceException?

时间:2019-01-18 08:00:44

标签: c# xml exception xmlserializer

在以下调用中,我得到了#!/usr/bin/env python3 import datetime import glob import os import os.path SOURCE_PATH = '/volume1/xx' TARGET_PATH = os.path.join(SOURCE_PATH, 'DMS') def main(): today = datetime.date.today() splitnames = [os.path.basename(fpath) for fpath in glob.glob("./xx/*.pdf")] for prefix, name_part in [ ('ReA', 'RG-Amazon'), ('GsA', 'GS-Amazon'), ('ReT', 'RG-Telekom'), ('NoE', 'Notiz-EDV'), ]: filenames = glob.iglob(os.path.join(SOURCE_PATH, prefix + '*.pdf')) for old_filename in filenames: new_filename = os.path.join(TARGET_PATH, '{}_{}_{}.pdf'.format(today, name_part, splitnames)) os.rename(old_filename, new_filename) if __name__ == '__main__': main() (“对象引用未设置为对象的实例”)

NullReferenceException

这里是XmlSerializer SerializerObj = new XmlSerializer(typeof(FooBar));

Foobar

已将违规行注释掉。取消注释,我在运行时收到错误。留下评论,没有错误。 XmlSerializer喜欢int,int数组,字符串数组和int列表,但似乎不喜欢int列表数组。任何想法为什么和/或解决方法?

注意:我内部的愤世嫉俗的人知道有人会尝试加紧说:“您尚未初始化任何属性。这就是空异常的原因。”在实际程序中,它们被 初始化。但是,由于我使用的是class FooBar { public int Alpha{ get; set; } public string[] Bravo{ get; set; } public int[] Charlie{ get; set; } public List<int> Delta{ get; set; } //public List<int>[] Echo { get; set; } } 而不是实例,因此其中的任何一个是否初始化都没有关系。

注2:我经验丰富的程序员正在闻到一个错误。

1 个答案:

答案 0 :(得分:1)

尝试一下:

public class FooBar
{
    public int Alpha { get; set; }
    public string[] Bravo { get; set; }
    public int[] Charlie { get; set; }
    public List<int> Delta { get; set; }
    public List<List<int>> Echo { get; set; }
}