c# - CsvHelper 版本 22.1.2 默认 TypeConverter 用于特定类型的属性
问题描述
在 CsvHelper 的早期版本中,可以以简单的方式将自定义 TypeConverters 分配给 CsvConfiguration 对象,如此处的 Stackoverflow 答案中所述。在版本 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 的最佳方法有任何见解?
解决方案
按照这个 fiddle使用 .NET 5 似乎工作得很好。我不太确定 dotnetfiddle 使用哪个 C# 版本,但我希望在使用 .NET 5 时使用最新的 (9.0)。
但是,在这个使用 .NET Framework 4.7.2的小提琴中,我可以重现您的错误。我的猜测是使用了 C# v7.3,但这只是猜测。
因此,您的一个解决方案可能是升级到较新版本的 C#。或者,我建议您在项目的 GitHub 页面上创建一个问题,以查看它是否是有意的,以防作者未在此处遵循 SO 标记。
推荐阅读
- python - 如果相同,熊猫加入删除列
- quantum-computing - 什么是量子计算机:它的量子比特状态和修改速度有多快?
- python-3.x - 我在 python rx=3.0.1 中收到“AttributeError: type object 'Observable' has no attribute 'from_'”错误
- python - 当我连接数据框时,我正在处理熊猫,我正在获取模块'pandas'没有属性'dataFrame'
- java - Java:将数组/元素列表拆分为相等元素的子列表
- javascript - Lambda函数:尽管在函数内部将对象推送到它,但数组返回空
- r - 在 API GET 请求中,我应该在哪里插入我的 API 密钥?
- github - 我不小心删除了 github 存储库中的文件,但我仍然在本地保存它们
- emacs - 尽管“加载路径”列表正确,但 Flycheck 报告“无法打开加载文件”
- sql - 如何在单个查询中加入 3 个表