WCF数据合同,它们如何适应图片

时间:2009-10-05 17:38:19

标签: wcf

我从代码示例中编码了数据合同,我的服务正在运行,但我没有明确设置数据合同。

哪个绑定是绑定到服务合同的数据合同?

2 个答案:

答案 0 :(得分:2)

任何服务操作(标有int的方法)使用的任何复杂类型(即超过string[OperationContract])都需要为{{1 }}

服务操作/方法正在转换为WSDL(Web服务描述语言)文件中的SOAP操作。传递的任何数据必须是可以在XML模式(XSD文件)中表达的内容。对于int,string等,有基本的预定义XSD类型,但除此之外的任何东西 - [DataContract]类型或者你正在处理的任何类型,必须以可以转换为XSD架构。

请记住:在所有WCF服务都可以与其他系统(如Java,PHP和其他您可能想到的其他系统)互操作之后。因此,服务合同中的所有内容 - 所有操作和所有正在操作的数据 - 必须采用可在WSDL(操作)和XSD(数据)文件中表达的格式,这些文件是广泛接受的行业标准。

目前,.NET 3.5中的WCF非常明确 - 您必须定义类并使用Customer属性标记它们,以及要向WSDL / XSD公开的那些类中的任何字段或属性必须使用[DataContract]属性明确标记文件(以及您的服务定义)。

这会让事情变得更清楚吗?

MARC

答案 1 :(得分:1)

DataContractSerializer是默认用于序列化操作参数和返回值的内容。例如,如果您在服务器上有此功能:

[OperationContract]
SomeType DoSomething(SomeOtherType x);

...然后DataContractSerializer将用于反序列化SomeOtherType(从XML转换),然后序列化SomeType(将其转换为XML)

DataContractSerializer可以理解许多不同的类型,但是创建DataContractSerializer可以理解的类型的推荐方法是使用[DataContract]属性来标记它。

此处有更多信息:http://msdn.microsoft.com/en-us/library/ms731923.aspx