.net 8 breaks the serialization?

It seems there's an issue with .net 8's breaking changes in how datetimeoffset is serialized.

System.Runtime.Serialization.InvalidDataContractException: No set method for property 'OffsetMinutes' in type 'System.Runtime.Serialization.DateTimeOffsetAdapter'. The class cannot be deserialized.
   at System.Runtime.Serialization.DataContracts.DataContract.DataContractCriticalHelper.ThrowInvalidDataContractException(String, Type)
   at System.Runtime.Serialization.DataContracts.DataContract.ThrowInvalidDataContractException(String message, Type type)
   at System.Runtime.Serialization.DataContracts.ClassDataContract.get_XmlFormatReaderDelegate()
   at System.Runtime.Serialization.DataContracts.ClassDataContract.ReadXmlValue(XmlReaderDelegator, XmlObjectSerializerReadContext)
   at System.Runtime.Serialization.XmlObjectSerializerReadContext.ReadDataContractValue(DataContract, XmlReaderDelegator)
   at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, Type declaredType, DataContract& dataContract)
   at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Int32 id, RuntimeTypeHandle declaredTypeHandle, String name, String ns)
   at System.Runtime.Serialization.XmlObjectSerializerReadContextComplex.InternalDeserialize(XmlReaderDelegator, Int32, RuntimeTypeHandle, String, String)
   at ReadTankMonitorReportFromXml(XmlReaderDelegator, XmlObjectSerializerReadContext, XmlDictionaryString[], XmlDictionaryString[])
   at System.Runtime.Serialization.DataContracts.ClassDataContract.ReadXmlValue(XmlReaderDelegator, XmlObjectSerializerReadContext)
   at System.Runtime.Serialization.XmlObjectSerializerReadContext.ReadDataContractValue(DataContract, XmlReaderDelegator)
   at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, Type declaredType, DataContract& dataContract)
   at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Type declaredType, DataContract dataContract, String name, String ns)
   at System.Runtime.Serialization.XmlObjectSerializerReadContextComplex.InternalDeserialize(XmlReaderDelegator, Type, DataContract, String, String)
   at System.Runtime.Serialization.DataContractSerializer.InternalReadObject(XmlReaderDelegator, Boolean, DataContractResolver)
   at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator, Boolean, DataContractResolver)
   at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator, Boolean)
   at System.Runtime.Serialization.XmlObjectSerializer.ReadObject(XmlDictionaryReader)
   at System.Runtime.Serialization.XmlObjectSerializer.ReadObject(Stream)
   at DiskQueue.Implementation.DefaultSerializationStrategy`1.Deserialize(Byte[])
   at DiskQueue.Implementation.PersistentQueueSession`1.Dequeue()

Grok tells me that: The root cause is that DiskQueue 1.7.1’s DefaultSerializationStrategy relies on DataContractSerializer, which in .NET 8 has a breaking change for DateTimeOffset serialization/deserialization. The DateTimeOffsetAdapter (an internal type) is used to represent DateTimeOffset in XML, and its read-only OffsetMinutes property breaks deserialization, even for data written in .NET 8.