Applying this attribute to a type indicates that in the case where, when expecting to deserialize an instance of the type or any of its derived types, but encountering an incompatible, uncastable type in the data being read, the serializer should attempt to deserialize an instance of the expected type using the stored, possibly invalid data.
This is equivalent to the AllowDeserializeInvalidData option, expect type-specific instead of global.
This means that the interface will be used to format all types derived from the type that is decorated with this attribute, regardless of custom formatters for the derived types.
If you inherit this class, it is VERY IMPORTANT that you implement each abstract method to the *exact* specifications the documentation specifies.
If you inherit this class, it is VERY IMPORTANT that you implement each abstract method to the *exact* specifications the documentation specifies.
System.Runtime.Serialization.IObjectReference,
Custom formatter for the UnityEngine.Coroutine type. This serializes nothing and always deserializes null, and only exists to ensure that no coroutine instances are ever created by the serialization system, since they will in almost all cases be invalid instances.
Invalid coroutine instances crash Unity instantly when they are garbage collected.
This formatter can handle anything but delegates for dynamic methods.
NOTE: Some platforms do not support emitting. Check whether you can emit on the current platform using Sirenix.Serialization.Utilities.EmitUtilities.CanEmit.
Eligibility for formatting by this class is determined by the CanFormat(Type, out Type) method.
This class always writes and reads bytes in a little endian format, regardless of system architecture.
NOTE: Policies are not necessarily compatible with each other in intuitive ways. Data serialized with the Everything policy will for example fail to deserialize auto-properties with Strict, even if only strict data is needed. It is best to ensure that you always use the same policy for serialization and deserialization.
This class and all of its policies are thread-safe.
Whenever serializing or deserializing anything, it is *strongly recommended* to use Get<T>() to get a proper wrapping serializer for that type.
NOTE: This class should NOT be inherited from; it is hard-coded into the system.
To extend the serialization system, instead create custom formatters, which are used by the ComplexTypeSerializer<T> class.
Whenever serializing or deserializing anything, it is *strongly recommended* to use Get<T>() to get a proper wrapping serializer for that type.
NOTE: This class should NOT be inherited from; it is hard-coded into the system.
To extend the serialization system, instead create custom formatters, which are used by the ComplexTypeSerializer<T> class.
Note that setting the IndexReferenceResolver on contexts passed into methods on this class will have no effect, as it will always be set to a UnityReferenceResolver.
System.Runtime.Serialization.IObjectReference,