public static Property Deserialise(System.IO.Stream stream) { Property property = new Property(); property.PropertyDefinitionID = IPCHelper.ReadGuid(stream); property.PropertyID = IPCHelper.ReadString(stream); byte nullItem = IPCHelper.ReadByte(stream); if (nullItem == 1) { property.Value = new PropertyValue() { Value = IPCHelper.ReadString(stream) }; } int valueCount = IPCHelper.ReadInt32(stream); for (int valueIndex = 0; valueIndex < valueCount; valueIndex++) { PropertyValue value = new PropertyValue(); value.PropertyValueID = IPCHelper.ReadString(stream); value.Value = IPCHelper.ReadString(stream); if (property.Values == null) { property.Values = new List <PropertyValue>(); } property.Values.Add(value); } return(property); }