【发布时间】:2023-03-31 01:26:02
【问题描述】:
在 CsvHelper 的早期版本中,可以直接将自定义 TypeConverters 分配给 CsvConfiguration 对象,如 Stackoverflow 答案 here 中所述。在 22.1.2 版本中,TypeConverterCache 似乎已移至 CsvContext 类,但我无法访问它。
using (var reader = new StreamReader(path))
using (var csv = new CsvReader(reader, csvConfig))
{
// this works to access the existing TypeConverterCache objects
csv.Context.get_TypeConverterCache();
// error: Property, indexer, or event 'CsvContext.TypeConverterCache' is not supported by the language; try directly calling accessor methods 'CsvContext.get_TypeConverterCache()' or 'CsvContext.set_TypeConverterCache(?)
csv.Context.TypeConverterCache.AddConverter<bool>(new MyCustomBooleanConverter());
// error: CsvContext.set_TypeConverterCache(?)' is not supported by the language
csv.Context.set_TypeConverterCache(xyz);
}
我正在尝试为所有布尔字段设置默认转换器。我可以看到 TypeConverterCache 属性是源代码中 CsvContext 上的一个公共字段,所以我不确定我做错了什么。
public virtual TypeConverterCache TypeConverterCache { get; set; }
有没有人了解在 CsvHelper 22.1.2 中为特定数据类型设置默认 TyperConverter 的最佳方法?
【问题讨论】: