从XSD生成数据类以在wcf服务和客户端之间使用?
我用xsd.exe工具生成数据类,但是wcf不喜欢要交换的数据类并抛出一个错误
“尝试序列化参数http://tempuri.org/:orderItems时发生错误,InnerException消息为'Type'Store.Schemas.Order',数据协定名为'Order:http://schemas.datacontract.org /2004/07/Store.Schemas',不需要将任何静态未知类型添加到已知类型列表中 - 例如,使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中。有关更多详细信息,请参阅InnerException。“
有很多基于XSD的类。 按照MSDN,它说http://msdn.microsoft.com/en-us/library/ms751512.aspx,每个数据类都要用KnownTypeAttribute,DataContractAttribute,DataMemberAttribute等来修饰。
有没有一种方法可以从xsd生成可用于WCF服务的数据类? 因为更改XSD.exe生成的类是不被推荐也不容易的过程。
我想第一个问题是,你是否也有wsdl,它是指xsd。 如果是,则可以使用scvutil.exe并传递wsdl路径,并确保xsd文件与wsdl文件位于同一目录中。 这将为您生成所需的数据类。
HTH
如果您想使用XSD.exe生成类,您将获得XML序列化数据类型,并标记所有这些Xml属性,并通过XmlSerializer
控制其序列化。 Wcf默认使用DataContractSerializer
,它不使用那些用于描述序列化的属性。 您必须在服务,操作或服务合约上使用XmlSerializerFormat
属性切换到XmlSerializer
。
http://wscfblue.codeplex.com/开源生成器解决了这个问题
链接地址: http://www.djcxy.com/p/34297.html上一篇: generate data class from XSD to use between wcf service and client?
下一篇: Powershell: Error consuming WCF services with MTOM message encoding