我正在尝试使用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解码为名称
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成为get only属性。