public void Serialization() { IDataContractSurrogate dataContractSurrogate = new MockProjectDataContractSurrogate(_project1); XmlObjectSerializer serializer = new DataContractSerializer(typeof(InputFile), new[] { typeof(ProjectSurrogate) }, int.MaxValue, true, true, dataContractSurrogate); InputFile deserializedInputFile; byte[] serializedData; using (MemoryStream memoryStream = new MemoryStream()) { serializer.WriteObject(memoryStream, _inputFile); memoryStream.Flush(); serializedData = memoryStream.ToArray(); } using (MemoryStream stream = new MemoryStream(serializedData)) { deserializedInputFile = serializer.ReadObject(stream) as InputFile; } _serializationContext.CompleteDeserialization(deserializedInputFile); Assert.AreEqual(_inputFile, deserializedInputFile, "File"); Assert.AreEqual(FileLength1, _inputFile.Length, "Length"); Assert.AreSame(_dataPacket, deserializedInputFile.CreateDataPacket()); }