对于使用 FileHelpers 库的 C# 应用程序,有没有办法存储和加载文件结构 class 而无需在可执行文件中编译它?

Is there a way, for a C# application using FileHelpers library, to store and load the file structure class without compiling it in the executable?

我正在考虑类似配置、xml 或 JSON 文件的内容。但我还没有找到任何这样的解决方案。 也许 FileHelpers 在已编译的程序集之外没有此功能,但这是在黑暗中的远景。 情况是我有几个文件要从 and/or 读取要写入,这些文件经常稍微改变结构;并且还需要添加新客户以在获得新客户时进行交互。 我以前成功使用过 FileHelpers 库,但为了不必在每次客户更改文件结构或新客户开始与我们开展业务时重新编译相当大的应用程序,我需要能够添加、删除,或更动态地更改 CSV、Excel 或 TXT 文件(取决于客户需求)的 FileHelpers 结构 class。 任何指导将不胜感激。

您可以生成 C# 类 并在运行时根据配置文件中定义的结构编译它们。请参阅 this SO question 了解不同的执行方式,包括使用 Roslyn 工具集。

另一种可能更简单的方法是 FileHelper's own Smart Format Detector 尝试。

虽然您可以走这条路并最终取得成功,但您系统的要求(时不时更改其 CSV 结构的客户、具有新文件结构的新客户等)似乎需要使用不同的库不需要 pre-defined 类 来读取 CSV 数据,并且可以按需访问每一行和每一列。您可以拥有关于每个客户文件格式的元数据,以及 read/write 灵活的数据。