You are troubleshooting an application that uses a class named FullName. The class is
decorated with the DataContractAttribute attribute. The application includes the following
code. (Line numbers are included for reference only.)
You need to ensure that the entire FullName object is serialized to the memory stream
object.
Which code segment should you insert at line 09?
A.
binary.WriteEndElement();
B.
binary.NriteEndDocument();
C.
ms.Close() ;
D.
binary.Flush();
Explanation:
* DataContractSerializer.WriteEndObject Method (XmlDictionaryWriter)
Writes the closing XML element using an XmlDictionaryWriter.
* Note on line 07: DataContractSerializer.WriteObject Method
Writes all the object data (starting XML element, content, and closing element) to an XML
document or stream.
XmlDictionaryWriter
As per my knowledge, the answer should be
D. binary.Flush();
the answer is D
from:
https://msdn.microsoft.com/en-us/library/ms752244(v=vs.110).aspx
MemoryStream stream2 = new MemoryStream();
XmlDictionaryWriter binaryDictionaryWriter = XmlDictionaryWriter.CreateBinaryWriter(stream2);
DataContractSerializer serializer = new DataContractSerializer(typeof(Record));
serializer.WriteObject(binaryDictionaryWriter, record1);
binaryDictionaryWriter.Flush();
Yup, A throws InvalidOperationException.
MemoryStream stream2 = new MemoryStream();
XmlDictionaryWriter binaryDictionaryWriter = XmlDictionaryWriter.CreateBinaryWriter(stream2);
serializer.WriteObject(binaryDictionaryWriter, record1);
binaryDictionaryWriter.Flush();
https://msdn.microsoft.com/en-us/library/ms752244(v=vs.110).aspx