我正在尝试使用CSVHelper填充CSV文件中未提供的列。 这是我需要导入的CSV的示例
Id
10
123
45
213
我要反序列化的课程是这个课程:
public class Foo {
public int Id { get; set }
public string Name { get; set }
}
使用默认配置时,出现此错误:
CsvHelper.HeaderValidationException:找不到名称为“ Name”的标题。
我希望可以定义一个映射器,以便解析器可以填充列Name
(例如,通过提供值的字典)。有什么办法吗?
谢谢
----------编辑
只需澄清一下,这个想法就是要有一个类似转换器的东西,它与一个字段相关联,可以用来将ID解码为Name
public class NameConverter
{
public NameConverter()
{
employeesList = new Dictionary<int, string>()
{
{ 10, "Mary" },
{ 45, "Mike" },
{ 123, "Jack" },
{ 213, "Suzanne" },
};
}
IDictionary<int, string> employeesList;
public string GetValue(int id) => employeesList[id];
}
我可以想象,替代方法是忽略建议的Name字段,并将NameConverter注入Foo类中,并使Name为仅获取属性。