好多人会写WebService也会远程调用WebService,调用前必须先添加WebReferences才行,可有多少人知道为什么添加引用后就能访问了呢?肯定有人会说只要能调用就行了,不必关心为什么能调用,当然你这样是没有问题的,但是我个人建议了解一些底层知识,对一些问题会有更好的理解。
为什么添加Web引用后能远程调用?
因为写好一个WebService后,会产生Web Service Description Language(WSDL)Web服务描述语言,我也叫它元数据或者XmlInfo集,什么是元数据?描述数据的数据叫做元数据,也就是元数据描述了你这个WebService里面的类,有哪些方法,有哪些参数,有哪些返回值,这些方法是做什么的,等等一系列信息,当你添加Web引用后,就会在本地产生一个与网络上那个WebService所对应的一摸一样的WSDL如下图一所示,通个这些元数据信息反序列化为一个Proxy类,因为元数据一样,所以反序列化的Proxy类具有和网络上的WebService全部的功能。
图一