【问题标题】:PrepareHeaderForMatch change in CSVHelper v23CSVHelper v23 中的 PrepareHeaderForMatch 更改
【发布时间】:2021-02-14 20:08:03
【问题描述】:

CSVHelper v23 中的重大更改包括“所有委托现在都接受一个结构参数”。 PrepareHeaderForMatch 就是这些代表之一。我收到一个编译错误“Delegate 'PrepareHeaderForMatch' does not take 2 arguments”。

对于这个基本问题,我很抱歉,但我不确定如何在我的代码中修复 PrepareHeaderForMatch。我确信这很简单,但我在网上找不到任何示例或帮助。也许这篇文章将来会对其他人有所帮助。

        var csvConfig = new CsvConfiguration(CultureInfo.CurrentCulture)
        { 
            HeaderValidated = null,
            MissingFieldFound = null,
            PrepareHeaderForMatch = (string header, int index) => header.ToLower()   // Match header and property names after converting to lower case
        };

【问题讨论】:

    标签: csvhelper


    【解决方案1】:

    我也一直在摸索这个问题。您所说的发行说明没有说明如何解决问题,并且文档尚未更新。我终于不得不查看source code来解决它。

    这行得通:

    var csvConfig = new CsvConfiguration(CultureInfo.CurrentCulture)
    { 
        PrepareHeaderForMatch = args => args.Header.ToLowerInvariant()
    };
    

    我更喜欢 args 的新类,但是一个关于重大更改的简单示例会很好。

    【讨论】:

    • 谢谢,代码更改现在编译成功。我不确定发生了什么更改或为什么更改(我当然不是 C# 专家!),但正如您所说的 Josh 或志愿者提供一些示例来帮助理解如何重新编码以进行重大更改会有所帮助。
    • 更改日志说明了这一点,但我忘了更新示例。我今天会这样做。
    • 文档中有一个迁移指南的功能请求,因此将来会有。
    • @JoshClose 谢谢!棒极了。我正在从 v12 更新,所以我有很多担心哈哈。顺便说一句,它是一个很棒的图书馆。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2014-03-07
    • 2022-07-12
    • 1970-01-01
    相关资源
    最近更新 更多