gpt4 book ai didi

.net - 从模板生成平面文件并将其解析回来的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-01 21:48:05 24 4
gpt4 key购买 nike

这是我遇到的问题,我需要生成一个平面字符串文件,该文件具有基于字段长度以及开始和停止位置的相当复杂(强加)的结构。该文件将从 .Net 应用程序生成(数据存储在 SQL Server 中)。它有不同的标题和不同的模板。随着时间的推移,结构也可能会发生变化。相同类型的文件也必须解析回我的系统。

我更希望创建一个定义文件外观的模板,例如具有以下属性:名称、类型、字段长度、开始和结束位置、默认值。

并且能够从某种 View 数据生成文件,然后从同一模板解析它。

我很确定我不是第一个遇到这种麻烦的人,但我在互联网上找不到好的图书馆。我查看过 StringTemplate,但它似乎无法根据数据的长度和位置创建模板。

谢谢!

最佳答案

我不知道处理这个问题的通用组件。但我会编写一个通用工具,它基于模板定义,使用反射来填充对象中的属性。

您的"template"需要定义文件的结构,正如您已经描述的那样,以及要将数据加载到的类的全名(也许还包括包含该类的程序集,如果可以更改)。

基本流程是:

  • 检查 header 的正确性(可选)
  • 循环数据线
    • 创建目标类的新实例(使用 Assembly.GetType() 和 Type.GetConstructor()`)
    • 循环字段
      • 根据类型解析值
      • 设置同名属性的值(使用 Type.GetProperty()PropertyInfo.SetValue())
    • 将对象添加到结果集合中。
  • 完成

只要确保您的 View 对象具有默认构造函数和所有必需的属性,就应该没问题。

写入文件的方式与使用反射获取 View 对象的值的方式大致相同。

关于.net - 从模板生成平面文件并将其解析回来的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7040828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com