分布式开发中有一个基本的元素组成,就是通过简单对象访问协议(soap)来解决远程的对象传输问题,可以将一个对象序列成XML形式来传递,形如:
[DataContract]
public class Person
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int Age { get; set; }
}
这种对象呢,会在传输时被WCF标记为XML数据,因为XML可以被广泛的使用,几乎所有平台都认可这种数据格式,所以在WCF中这个对象可能会被标记为
<Person>
<Name>MyName</Name>
<Age>25</Age>
</Person>
这样到WCF的调用方之后就可以很方便的被认出来了,那么同样道理,类和类中的方法,属性等都会被有标准的序列化,一个标准的SOAP数据请求包呢,通常是这样的:
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www./2001/12/soap-envelope"
soap:encodingStyle="http://www./2001/12/soap-encoding">
<soap:Header>
…
</soap:Header>
<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>
<soap:Envelope
xmlns:soap="http://www./2001/12/soap-envelope"
soap:encodingStyle="http://www./2001/12/soap-encoding">
<soap:Header>
…
</soap:Header>
<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>