WCF代理生成

时间:2009-03-25 16:20:11

标签: wcf proxy

我使用svcutil生成调用WSE2 Web服务的wcf代理。

当Web服务作者更改代理中字段的顺序时,问题就出现了。

我检查了生成的代理,发现公共属性是用XmlElementAttribute(Order = 0)装饰的。订单= 1,等等。

有没有办法生成在Web服务发生变化后仍能正常运行的WCF代理?

因为现在我需要重新生成代理并重新编译。

2 个答案:

答案 0 :(得分:0)

您可以手动更改生成的文件,如果更改的唯一内容是字段的顺序,这可能是最佳解决方案。但是你必须重新编译。

否则,您可以使用渠道工厂来创建渠道,但您仍需要更改数据合同=>你将不得不重新编译。

将代理保留在单独的程序集中?

答案 1 :(得分:0)

svcutil生成的基本普通代理将使用DataContractSerializer,它使用这些Order = x属性。

如果您愿意,您也可以使用直接XmlSerializer,它不会使用Order = x属性装饰您的属性。

使用:

  svcutil ........ /serializer:XmlSerializer

实现这一目标。

马克