- Microsoft Windows Communication Foundation 4.0 Cookbook for Developing SOA Applications
- Steven Cheng
- 298字
- 2021-04-13 17:04:01
By default, WCF runtime uses DataContractSerializer
to perform data serialization and deserialization. However, in some cases, we will prefer using XMLSerializer
, which will give developers more control over the serialized XML content or will work more closely with some POX clients (like ASMX Web Service client).
- First, we should make our data type ready for
XMLSerializer
. This can be done by adding XML serialization attributes on our data types. The followingUser
class has been decorated with several XML serialization attributes (XmlRootAttribute
for top-level type andXmlElementAttribute
for type members).[XmlRoot(ElementName="UserObject",Namespace="http://wcftest.org/xmlserializer")] public class User { [XmlElement(ElementName="FName")] public string FirstName { get; set; } [XmlElement(ElementName = "LName")] public string LastName { get; set; } [XmlElement(ElementName = "IsEnabled")] public bool Enabled { get; set; } }
- Then, we need to apply
XmlSerializerFormatAttribute
on theServiceContract
type used in our service (see theITestService
interface shown as follows):[ServiceContract] [XmlSerializerFormat(Style=OperationFormatStyle.Document)] public interface ITestService { [OperationContract] void SendUser(User user); }
When we apply the XmlSerializerFormatAttribute on the ServiceContract, the WCF runtime will use XMLSerializer
as the default Serializer to serialize data and deserialize SOAP messages. Also, the auto-generated service metadata will output the data type schema based on the class's XML serialization attributes. For the User
class mentioned in the previous code example, service metadata will use the schema as shown in the next screenshot to represent its XML format:

By capturing the underlying SOAP message, we can find that the XML content of the serialized User
object conforms to the metadata schema defined earlier, which is controlled by those XML serialization attributes applied on the user
class (refer to the next screenshot):

- 常用工具軟件案例教程
- Word-Excel-PowerPoint 2010三合一從新手到高手(超值版)
- Moldflow 2010完全自學與速查手冊(模流分析·成本控制)
- 穿越Photoshop CC
- 鍵盤錄入技術(第2版)
- DSP開發寶典
- 專業級音樂制作理論與實踐Pro Tools:從入門到應用
- 24小時學會PowerPoint 2010
- Autodesk Ecotect Analysis綠色建筑分析應用
- 中文版3ds Max 2014-VRay效果圖制作完全自學教程
- 跨境電商:速賣通搜索排名規則解析與SEO技術
- 中文版CorelDRAW X7基礎培訓教程
- 中文版Illustrator CC完全自學教程
- Maya Paint Effect 特效應用手冊
- 精通AutoCAD 2013機械設計