C# CsvHelper版本22.1.2特定类型属性的默认类型转换器
在以前版本的CsvHelper中,自定义类型转换器可以直接分配给CsvConfiguration对象,如Stackoverflow答案中所述。在22.1.2版中,TypeConverterCache似乎已移动到CsvContext类,但我无法访问它C# CsvHelper版本22.1.2特定类型属性的默认类型转换器,c#,csvhelper,C#,Csvhelper,在以前版本的CsvHelper中,自定义类型转换器可以直接分配给CsvConfiguration对象,如Stackoverflow答案中所述。在22.1.2版中,TypeConverterCache似乎已移动到CsvContext类,但我无法访问它 using (var reader = new StreamReader(path)) using (var csv = new CsvReader(reader, csvConfig))
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);
}
使用(变量读取器=新的流读取器(路径))
使用(var csv=新的CsvReader(读卡器,csvConfig))
{
//这用于访问现有的TypeConverterCache对象
get_TypeConverterCache();
//错误:该语言不支持属性、索引器或事件“CsvContext.TypeConverterCache”;请尝试直接调用访问器方法“CsvContext.get_TypeConverterCache()”或“CsvContext.set_TypeConverterCache(?)
csv.Context.TypeConverterCache.AddConverter(新的MyCustomBooleanConverter());
//错误:该语言不支持CsvContext.set_TypeConverterCache(?)
csv.Context.set_TypeConverterCache(xyz);
}
我正在尝试为所有布尔字段设置默认转换器。我可以在源代码中看到TypeConverterCache属性是CsvContext上的一个公共字段,所以我不确定我做错了什么
公共虚拟类型转换器缓存类型转换器缓存{get;set;}
是否有人了解在CsvHelper 22.1.2中为特定数据类型设置默认TyperConverter的最佳方法?按照使用.NET 5似乎效果不错。我不太确定dotnetfiddle使用的是哪种C#版本,但我希望在使用.NET5时使用最新版本(9.0) 但是,在使用.NETFramework4.7.2时,我可以重现您的错误。我的猜测是使用了C#v7.3,但这只是一个猜测 因此,您的一个解决方案可能是升级到更新版本的C#。或者,我建议您在上创建一个问题,看看是否是为了防止作者不遵循此处的SO标记