如何使用 csvhelper 显示我创建的错误列表

How can I display my created error list using csvhelper

抱歉,这似乎是一个愚蠢的问题,但我遗漏了一些东西,不知道该怎么做。

作为我正在制作的应用程序的一部分,我正在使用 CSVHelper 创建一个文件,其中包含使用该应用程序时可能出现的任何错误的详细信息,例如无法连接到数据库、缺少值等。我一直在这里关注本教程:https://www.youtube.com/watch?v=fRaSeLYYrcQ 并对其进行了更多编辑以满足我的需要。我有一个这样的错误记录文件:

public class ErrorLogging
{
    public string ErrorType { get; set; }
    public string Relation { get; set; }
    public string Message { get; set; }



    public static List<ErrorLogging> GetErrors(string type, string relating, string message)
    {

        return new List<ErrorLogging>
        {
            new ErrorLogging
            {
                ErrorType = type,
                Relation = relating,
                Message = message

            }
        };

    }
}

所以我在这里做到了,所以 csv 文件中的列 headers 将是 ErrorType、Relating 和 Message

我还有一个导出日志文件:

class ExportLog
{
    public static void Log<T>(string path, string file, List<T>report)
    {
        var csvPath = Path.Combine(path + "\", file);

        using (var streamWriter = new StreamWriter(csvPath))
        {
            using (var csvWriter = new CsvWriter(streamWriter, CultureInfo.InvariantCulture))
            {
                csvWriter.WriteRecords(report);

            }
        }

    }
}

在我的主文件中 program.cs 然后我通过执行以下操作来使用它们:

        if (validateRoleTitles is not false)
        {
            log.Information("Roles found");
        }

        else
        {
            log.Warning("Roles could not be found");
            ErrorLogging.GetErrors("Warning", "Database", "Not all roles found in the database");

        }

我现在需要创建包含错误列表的 csv 文件,方法如下:

 ExportLog.Log(config.ExportFolder, exportFile, "error logging list here");

但是我不确定如何实际显示我正在创建的这些列表(如果这有意义的话)?

因为我做不到:

ExportLog.Log(config.ExportFolder, exportFile, ErrorLogging.GetErrors());

因为它将寻找要传递的参数。我知道我在这里遗漏了一些非常明显的东西,但无法弄清楚是什么,我们将不胜感激

所以我最终解决了我的问题,我一直在以错误的方式解决问题,我不需要:

public static List<ErrorLogging> GetErrors(string type, string relating, string message)
{

    return new List<ErrorLogging>
    {
        new ErrorLogging
        {
            ErrorType = type,
            Relation = relating,
            Message = message

        }
    };

}

在 ErrorLogging.cs 中,它只需要是:

public class ErrorLogging
{
    public string ErrorType { get; set; }
    public string Relation { get; set; }
    public string Message { get; set; }

}

然后在 program.cs 我可以像这样声明一个新列表:

  List<ErrorLogging> ErrorList = new List<ErrorLogging>();

然后当我需要添加到列表中时,我可以简单地按照以下方式做一些事情:

            ErrorList.Add(new ErrorLogging()
            {
                ErrorType = "Warning",
                Relation = "Database",
                Message = "Not all properties found in the database"
            });

然后在创建包含错误列表的 csv 时,我可以检查列表是否为空,如果不为空则创建:

       if (ErrorList.Any())
       {
            ExportLog.Log(config.LogFolder, errorLog, ErrorList);

        }