Wcf休息服务 - 序列化或手工制作xml?

时间:2011-06-17 12:09:38

标签: c# xml wcf web-services serialization

我正在制定一个Xml Web服务计划,以进入客户的网站,供第三方使用,以便他们可以访问客户的数据。

我的问题是在这里真正询问最佳做法,目前我正在审议两种不同的策略:

1)创建一个对象模型,它代表我的Xml数据并将其序列化(通过Wcf REST端点公开数据显式或隐式)

2)使用XLinq将我的域模型直接转换为手工制作的Xml,并将其作为字符串从服务中返回,并相应地设置响应头

我喜欢(1)因为我让系统生成物理Xml并且我纯粹在对象模型中工作,但是版本化成为一个问题,我可能需要更好地控制输出。

我喜欢(2)因为我确实得到了很好的控制,版本化变得更容易,但我现在正在手工制作Xml并且错误升级的机会。

有什么意见吗?我错过了一些让我两全其美的东西吗?如果我知道“版本化对象模型”的最佳方法,我会直接寻求(1) - 使用不同的命名空间就足够了吗?

1 个答案:

答案 0 :(得分:1)

我会使用序列化。只要您不尝试使用域对象进行序列化,就可以通过DataContractSerializer或XmlSerializer对XML进行非常精细的控制。然后,您可以使用AutoMapper

之类的内容在域对象和序列化对象之间进行映射