Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在web服务中使用自定义类型避免耦合_C#_.net_Wcf_Web Services_Soa - Fatal编程技术网

C# 如何在web服务中使用自定义类型避免耦合

C# 如何在web服务中使用自定义类型避免耦合,c#,.net,wcf,web-services,soa,C#,.net,Wcf,Web Services,Soa,我将开发一个webservice(可能是在WCF中),传递给公开方法的几个参数可能是自定义类型参数 关于如何避免破坏SOA解耦并达到我的目标,您有什么建议吗 谢谢 WSDL定义了可互操作的契约: 描述如何与webservice通信的端点和操作 使用和xsd模式的类型 XMLSchema(xsd)描述类型:xml元素、使用xml类型的值类型等等 所以,如果可以使用Xml模式描述所有类型,那么就可以了。NET强制您的类型可以序列化为xml,然后可以通过Web服务公开它 在客户端,通常有一些库可以

我将开发一个webservice(可能是在WCF中),传递给公开方法的几个参数可能是自定义类型参数

关于如何避免破坏SOA解耦并达到我的目标,您有什么建议吗


谢谢

WSDL定义了可互操作的契约:

  • 描述如何与webservice通信的端点和操作
  • 使用和xsd模式的类型
XMLSchema(xsd)描述类型:xml元素、使用xml类型的值类型等等

所以,如果可以使用Xml模式描述所有类型,那么就可以了。NET强制您的类型可以序列化为xml,然后可以通过Web服务公开它


在客户端,通常有一些库可以读取WSDL,并使用它们的语言推导/生成类,以序列化/反序列化服务中的消息。但是任何人也可以阅读合同和书面文件,我不明白:webservices公开WSDL,其中定义了自定义类型。我不明白你为什么要用它来破坏SOA?@Styx31:这是一个问题(可能你已经回答了):我会“破坏”一些东西吗?然后:如果客户端不知道,它如何使用我的自定义“类型”?它足够WSDL以可互操作的方式描述任何类型吗?