@@ -13,19 +13,11 @@ public class XmlDataContractSerializer : ISerializer
1313 {
1414 private static readonly Encoding _defaultEncoding = new UTF8Encoding ( false ) ;
1515 private static readonly XmlDataContractSerializer _defaultXmlDataContractSerializer = new XmlDataContractSerializer ( ) ;
16+ private MediaTypeHeaderValue _defaultContentType ;
17+ private MediaTypeHeaderValue _contentType ;
1618
1719 /// <summary>
18- /// Default XML serializer for AddXmlBody
19- /// </summary>
20- internal static XmlDataContractSerializer Default { get { return _defaultXmlDataContractSerializer ; } }
21-
22- /// <summary>
23- /// The configuration used to create an XML writer
24- /// </summary>
25- protected XmlWriterSettings XmlWriterSettings { get ; set ; }
26-
27- /// <summary>
28- /// Constructor
20+ /// Initializes a new instance of the <see cref="XmlDataContractSerializer" /> class.
2921 /// </summary>
3022 public XmlDataContractSerializer ( )
3123 {
@@ -36,27 +28,7 @@ public XmlDataContractSerializer()
3628 }
3729
3830 /// <summary>
39- /// Serialize the object into a byte array
40- /// </summary>
41- /// <param name="obj">Object to serialize</param>
42- /// <returns>Byte array to send in the request body</returns>
43- public byte [ ] Serialize ( object obj )
44- {
45- var serializer = CreateSerializer ( obj ) ;
46- var temp = new MemoryStream ( ) ;
47- using ( var writer = XmlWriter . Create ( temp , XmlWriterSettings ) )
48- {
49- serializer . WriteObject ( writer , obj ) ;
50- }
51- var result = temp . ToArray ( ) ;
52- return result ;
53- }
54-
55- private MediaTypeHeaderValue _defaultContentType ;
56- private MediaTypeHeaderValue _contentType ;
57-
58- /// <summary>
59- /// Content type produced by the serializer
31+ /// Gets or sets the content type produced by the serializer
6032 /// </summary>
6133 /// <remarks>
6234 /// As long as there is no manually set content type, the content type character set will always reflect the encoding
@@ -85,10 +57,42 @@ public MediaTypeHeaderValue ContentType
8557 }
8658 }
8759
60+ /// <summary>
61+ /// Gets the default XML serializer for AddXmlBody
62+ /// </summary>
63+ internal static XmlDataContractSerializer Default
64+ {
65+ get { return _defaultXmlDataContractSerializer ; }
66+ }
67+
68+ /// <summary>
69+ /// Gets or sets the configuration used to create an XML writer
70+ /// </summary>
71+ protected XmlWriterSettings XmlWriterSettings { get ; set ; }
72+
73+ /// <summary>
74+ /// Serialize the object into a byte array
75+ /// </summary>
76+ /// <param name="obj">Object to serialize</param>
77+ /// <returns>Byte array to send in the request body</returns>
78+ public byte [ ] Serialize ( object obj )
79+ {
80+ var serializer = CreateSerializer ( obj ) ;
81+ var temp = new MemoryStream ( ) ;
82+ using ( var writer = XmlWriter . Create ( temp , XmlWriterSettings ) )
83+ {
84+ serializer . WriteObject ( writer , obj ) ;
85+ }
86+
87+ var result = temp . ToArray ( ) ;
88+ return result ;
89+ }
90+
8891 /// <summary>
8992 /// Create a new data contract serializer
9093 /// </summary>
9194 /// <param name="obj">The object to create the serializer for</param>
95+ /// <returns>A new instance of the serializer for the given instance.</returns>
9296 protected virtual DataContractSerializer CreateSerializer ( object obj )
9397 {
9498 return new DataContractSerializer ( obj . GetType ( ) ) ;
0 commit comments