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

对于使用FileHelpers库的C#应用程序,有没有一种方法可以存储和加载文件结构类,而无需在可执行文件中编译它?,c#,winforms,filehelpers,C#,Winforms,Filehelpers,我正在考虑类似配置、xml或JSON文件的东西。但我没有找到任何这样的解决办法。 也许FileHelpers在编译的程序集之外没有这个功能,但这是一个很难实现的目标。 情况是,我有几个文件要读取和/或写入,这些文件的结构经常会发生轻微变化;此外,还需要增加新客户,以便在获得新客户时与之互动。 我以前成功地使用过FileHelpers库,但为了不必在每次客户更改其文件结构或新客户开始与我们做生意时重新编译相当大的应用程序,我需要能够添加、删除或更改CSV、Excel或TXT文件的FileHelpe

我正在考虑类似配置、xml或JSON文件的东西。但我没有找到任何这样的解决办法。 也许FileHelpers在编译的程序集之外没有这个功能,但这是一个很难实现的目标。 情况是,我有几个文件要读取和/或写入,这些文件的结构经常会发生轻微变化;此外,还需要增加新客户,以便在获得新客户时与之互动。 我以前成功地使用过FileHelpers库,但为了不必在每次客户更改其文件结构或新客户开始与我们做生意时重新编译相当大的应用程序,我需要能够添加、删除或更改CSV、Excel或TXT文件的FileHelpers结构类(取决于客户需求),而不是动态的。 欢迎提供任何指导。

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

另一种可能更简单的方法是试一试


虽然您可以沿着这条道路走下去并最终取得成功,但您的系统需求(不时更改CSV结构的客户,具有新文件结构的新客户,等等)似乎有所不同要求使用不同的库,该库不需要预定义的类来读取CSV数据,并且可以根据需要访问每一行和每一列。您可以拥有关于每个客户文件格式的元数据,并可以动态灵活地读取/写入数据。

使用一个库,该库可以处理所述文件类型,而不需要编译的备份类型。这真是太棒了与将Json反序列化为编译类型与将Json数据作为通用对象图结构进行动态处理没有什么不同。当然,需要围绕“动态”位定义规则。也许这个“FileHelpers”提供扩展,可以收集与一般强类型数据不同的二级动态数据bits?或者,用于编码数据本身的结构应该根据“动态”要求重新评估。或者,使用门面并设置更新(包括重新编译)和分发的附属程序集已经足够/合适了。。