【问题标题】:C# Class (source code) Generator from XML file来自 XML 文件的 C# 类(源代码)生成器
【发布时间】:2011-02-28 00:10:20
【问题描述】:

您使用什么工具从 xml 文件创建类源代码?这是我需要自己推出的边缘案例吗?我需要从一些 XML 文件创建 DTO,但 XML 文件可能会更改(添加/删除属性),因此我需要能够快速更新它们。

我对@9​​87654322@ 方法真的没有印象,我一直在寻找一些东西来希望为我生成简单的 POCO。您是否使用过或见过任何工具可以做到这一点?

【问题讨论】:

标签: c# .net xml code-generation


【解决方案1】:

在 VS2008 和更高版本的 T4 中有一个内置的方法可以做到这一点。 Hanselman 在一个地方有一堆great links

【讨论】:

  • T4 让我想起了 Apache Velocity……顺便说一句,有一个名为 NVelocity 的 .NET 端口。 T4 比 NVelocity 更好地集成到 VS,因此可能值得研究。也很高兴看到它不仅限于纯粹的 .cs,还支持任何其他文本格式...
  • 有没有办法可以使用 T4 模板中的现有类?我收到错误消息“找不到类型或命名空间名称‘myclass’。”我已将其添加为 T4 模板所在项目的参考,我做错了吗?
  • 不行,你必须先写代码来做转换,因为它是一个通用引擎,不仅仅是用于 xml 和 xslt
  • 不,我有一个 T4 风格的 for 循环,可以在硬编码列表上生成我想要的代码,我有一个可以从我的 XML 文件返回数据列表的类,我就是不能弄清楚如何在 T4 模板中初始化我的类。例如,我见过其他人使用框架基类 syetem.io.file。
  • 我最终需要在我的文件顶部添加<#@ assembly name="PathToDll"> 标签,效果很好!
【解决方案2】:

Xsd2Code 怎么样: http://xsd2code.codeplex.com/

【讨论】:

    【解决方案3】:

    T4 听起来非常适合。

    它本质上是一种类似于 ASP.NET 的语法,用于根据您的模板生成代码。

    您将编写模板以根据需要为 POCO 输出代码,然后将代码嵌入到模板中以迭代您的 XML 集合。

    T4 是 Visual Studio 2008(但未记录)和 2010 的一部分。Microsoft DSL 工具以单独下载的形式提供对 Visual Studio 2005 的 T4 的支持。

    http://msdn.microsoft.com/en-us/library/bb126445.aspx

    【讨论】:

      【解决方案4】:

      我意识到这是一篇相当老的帖子,您可能已经继续前进了。 但是我遇到了和你一样的问题,所以我决定编写自己的程序。

      这绝不是优雅的,但它为我完成了这项工作。

      你可以在这里得到它:如果你喜欢,请提出建议。

      SimpleXmlToCode

      【讨论】:

        猜你喜欢
        • 2010-11-21
        • 2013-02-02
        • 1970-01-01
        • 2013-01-11
        • 1970-01-01
        • 1970-01-01
        • 2023-02-03
        • 1970-01-01
        • 2022-01-01
        相关资源
        最近更新 更多