2013-02-06 50 views
1

好吧,这是一种复杂的情况,所以让我先说明我正在尝试做什么。wcf服务调用一个返回IPropertyChangedEventHandler的ASMX web服务

我有一个使用DataContractFormat将请求序列化为JSON的WCF Web服务。 Web服务的一个客户端使用我的wsdl生成一个参考文件,并在他的末端使用soap端点来回调用。到目前为止,这一直很好,因为我们有能力提供对SOAP和REST/JSON请求的支持。

我们当前的项目要求我们包含RSA的方法,这些方法使用wsdl公开他们的webservice。所以我们基本上是对它们进行SOAP调用,然后在我们的末端生成一个引用文件,然后使用我们的Web服务中生成的类和方法。

我们正在得到的问题是,客户端正在收到构建错误,指的是无法序列化所有RSA类中包含的IPropertyChangedEventHandler。我怀疑的问题是,RSA的类都是使用System.Xml.Serialization方法定义的,而我的Web服务是使用DataContractFormat而不是XMLSerializerFormat编写的,所以它不知道如何序列化这些类。如何避免使用DataContract完全重写参考文件?或者有可能是我可能忽略的其他东西?

让我知道你是否需要更多的细节。

+0

你是说在RSA的类中有一个'IPropertyChangedEventHandler'类型的属性?他们希望在序列化时做什么? –

+0

你能否显示实际的异常,包括内部异常? ex.ToString()会很好。 –

+0

感谢您的回复,但我确实认为我们可能找到了解决问题的答案。默认情况下,Svcutil.exe用参考文件中的PropertyChanged东西生成Web引用。由于我们甚至没有使用它,所以我们找到了一种方法来在所有类上生成没有PropertyChanged的参考文件,所以我们将看看是否可以解决问题。我们尝试后会更新。 – sanpaco

回答

1

一位同事能够弄清楚如何在方法中没有PropertyChangeEventHandler的情况下生成RSA wsdl。我们能够得到的参考文件,生成不的PropertyChanged服务引用文件夹

<EnableDataBinding>false</EnableDataBinding> 

下改变svcmap文件改变之后,我们更新了服务引用和所有的PropertyChanged东西走了,我们不再有构建错误。

+0

所以这不是RSA类中有IPropertyChangedEventHandler;只是代理已经生成了。 –

+0

正确。我们使用svcutil.exe默认生成这些东西。所以我们只是想出了如何让它不生成它。 – sanpaco