- 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):

- 中文版Photoshop CS6完全使用手冊(超值版)
- AutoCAD 2020中文版從入門到精通(標準版)
- 鍵盤錄入技術(第2版)
- UG NX 9.0中文版 基礎教程 (UG工程師成才之路)
- IT Inventory and Resource Management with OCS Inventory NG 1.02
- 深入理解OpenCV:實用計算機視覺項目解析(原書第3版)
- SPSS統計分析
- SolidWorks 2020中文版從入門到精通
- 剪映短視頻剪輯從入門到精通:宣傳短片+電商視頻+產品廣告+活動慶典
- 3ds Max影視動畫角色設計技法教程
- AI設計時代:Midjourney實戰應用手冊
- NumPy 1.5 Beginner's Guide
- Premiere視頻編輯案例教程:Premiere Pro 2020(微課版·第2版)
- Kubernetes快速入門(第2版)
- 圖像處理系統