我正在构建一个返回XML格式(没有SOAP,没有ATOM,只是普通的XML)的服务。假设我的领域对象已经填充了数据,我只需要将它们转换为XML格式。在.NET上,我有哪些选择呢?
要求:
- 转换不是1:1的。比如说,我有一个地址属性,类型为Address,其中包含嵌套属性,如Line1、City、Postcode等。这可能需要生成类似于`Line1, Postcode`这样完全不同的XML。 - 一些XML元素/属性是有条件的,例如,如果客户未满18岁,则XML需要包含一些额外的信息。 - 我只需要将对象序列化为XML,反之则不重要。 - 一些技术,如数据合同,使用.NET属性。其他配置方式(外部XML配置、伙伴类等)也会有所帮助。
以下是我目前看到的选项。矫正/添加将非常受欢迎。
- 字符串连接 - 忘了它吧,这只是个玩笑 :) - Linq 2 XML - 完全控制但需要编写大量代码,需要良好的单元测试套件。 - ASP.NET MVC中的视图引擎(甚至理论上还有Web Forms),逻辑位于控制器中。问题在于如何结构化,我可以在我的控制器中拥有简单的规则引擎和每个可能输出的一个视图模板,或者直接在模板中进行决策逻辑。两者都有优缺点。 - XML序列化 - 我不确定这里的灵活性。 - 来自WCF的数据合同 - 我也不确定这里的灵活性,而且它们在简单的ASP.NET MVC应用程序(非WCF服务)中是否可用?它们现在是标准XML序列化的超集吗? - 如果存在,则可以使用某些XML-to-object映射器。我越想越觉得我正在寻找这样的东西,但我找不到任何合适的东西。
有什么意见/其他选项吗?
要求:
- 转换不是1:1的。比如说,我有一个地址属性,类型为Address,其中包含嵌套属性,如Line1、City、Postcode等。这可能需要生成类似于`Line1, Postcode`这样完全不同的XML。 - 一些XML元素/属性是有条件的,例如,如果客户未满18岁,则XML需要包含一些额外的信息。 - 我只需要将对象序列化为XML,反之则不重要。 - 一些技术,如数据合同,使用.NET属性。其他配置方式(外部XML配置、伙伴类等)也会有所帮助。
以下是我目前看到的选项。矫正/添加将非常受欢迎。
- 字符串连接 - 忘了它吧,这只是个玩笑 :) - Linq 2 XML - 完全控制但需要编写大量代码,需要良好的单元测试套件。 - ASP.NET MVC中的视图引擎(甚至理论上还有Web Forms),逻辑位于控制器中。问题在于如何结构化,我可以在我的控制器中拥有简单的规则引擎和每个可能输出的一个视图模板,或者直接在模板中进行决策逻辑。两者都有优缺点。 - XML序列化 - 我不确定这里的灵活性。 - 来自WCF的数据合同 - 我也不确定这里的灵活性,而且它们在简单的ASP.NET MVC应用程序(非WCF服务)中是否可用?它们现在是标准XML序列化的超集吗? - 如果存在,则可以使用某些XML-to-object映射器。我越想越觉得我正在寻找这样的东西,但我找不到任何合适的东西。
有什么意见/其他选项吗?