如何使用 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);
}
抱歉,这似乎是一个愚蠢的问题,但我遗漏了一些东西,不知道该怎么做。
作为我正在制作的应用程序的一部分,我正在使用 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);
}