在我们的应用程序(C# - .NET 4.5)中,我们有一个报告生成工具。该工具必须只接收 SQL 命令,对其进行验证,然后创建一个全新的报告,其中包含与 SQL 命令指定的名称和相应数据类型相同的可用字段,类似于 ORM 工具所做的事情。
由于这个工具的性质,我们使用反射和发射来创建一个全新的类。从 dataReader ( System.Data.SqlClient.SqlDataReader
) 提供的字段中,我们可以创建类型并用相应的数据填充它。
这样做的结果是一个 IQueryable 对象,我可以在我的报告中使用它。
整个过程已经完成并经过测试,但是为了将报告、生成的类和 SQL 命令放在一起,我们需要将这种新类型保存在数据库中,因为或者我们的数据库布局和系统定义,这需要我提供一个 XML-将文件或字符串之类的方法转换为将在保存之前压缩并转换为 Base64 字符串的方法。
如果我要将报告保存到 DLL 文件中,这将是一项简单的任务,就像这里显示的那样。
但是由于这种新类型必须转换为类似 XML 的格式,所以我有点迷失在这里。
我过去做过相反的事情:手动从纯 XML 文件完全创建一个类型。我也知道我可以做类似的事情,但它需要我循环进入类的每个细节/属性/方法/成员/等来创建 XML 文件。
有什么方法(比如 .NET 框架的助手)可以帮助我吗?
与其 100% 手动完成,我还想将 XML 生成/解析委托给一个性能可能更好的工具......
编辑:
人们,在发表评论之前阅读标题!我正在尝试为该类型保存一个 XML。类型。不是对象。类型。
@Mark Gravell 感谢您的提示。我会检查的。但是关于模式:有什么方法可以自动保存/加载它?