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

- 中文版AutoCAD 2015實用教程
- MATLAB計算機視覺經典應用
- Adobe Photoshop 網頁設計與制作標準實訓教程(CS5修訂版)
- 我為PS狂 Photoshop照片處理一分鐘秘笈
- 24小時全速學會Photoshop 2021
- UG NX 9.0中文版基礎與實例教程
- Photoshop+CorelDRAW平面設計實例教程(第4版)
- CorelDRAW 2020中文版入門、精通與實戰
- PHP 5 Social Networking
- IBM WebSphere eXtreme Scale 6
- AutoCAD入門教程全掌握
- 行攝 Photoshop CC后期修片高手之道(第2版)
- Vulkan實戰
- 中文版CorelDRAW X7基礎培訓教程
- Revit建模進階標準教程(實戰微課版)