diff --git a/OdinSerializer/Config/AssemblyBuildInfo.cs.meta b/OdinSerializer/Config/AssemblyBuildInfo.cs.meta
index c48034b..760bd7c 100644
--- a/OdinSerializer/Config/AssemblyBuildInfo.cs.meta
+++ b/OdinSerializer/Config/AssemblyBuildInfo.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 66d20e67dbe2e8a5372c7a9c9a3eda5a
+guid: 9322a4845d4864a7366b2d12cfdace66
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Config/GlobalSerializationConfig.cs.meta b/OdinSerializer/Config/GlobalSerializationConfig.cs.meta
index 5799697..ab88de6 100644
--- a/OdinSerializer/Config/GlobalSerializationConfig.cs.meta
+++ b/OdinSerializer/Config/GlobalSerializationConfig.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 95ac1e05adc22603327a2d764ad00573
+guid: 7c3153bd4a6d8925f7c188721b634625
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters.meta b/OdinSerializer/Core/DataReaderWriters.meta
index 8efdedb..8b21b9e 100644
--- a/OdinSerializer/Core/DataReaderWriters.meta
+++ b/OdinSerializer/Core/DataReaderWriters.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d8f938c128161c44d83ba03222f46d65
+guid: c16fbaa26b274ee47b461c3da65e6da1
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Core/DataReaderWriters/BaseDataReader.cs.meta b/OdinSerializer/Core/DataReaderWriters/BaseDataReader.cs.meta
index a6d7c5d..dc0352e 100644
--- a/OdinSerializer/Core/DataReaderWriters/BaseDataReader.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/BaseDataReader.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ca382bdab6c4fcdb83d3d12c20dcc7bd
+guid: b3a28b87c296a13fb1d6f41b90e8bfa8
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/BaseDataReaderWriter.cs b/OdinSerializer/Core/DataReaderWriters/BaseDataReaderWriter.cs
index 3007692..4e5c00f 100644
--- a/OdinSerializer/Core/DataReaderWriters/BaseDataReaderWriter.cs
+++ b/OdinSerializer/Core/DataReaderWriters/BaseDataReaderWriter.cs
@@ -37,6 +37,7 @@ public abstract class BaseDataReaderWriter
/// The reader's or writer's serialization binder.
///
[Obsolete("Use the Binder member on the writer's SerializationContext/DeserializationContext instead.", error: false)]
+ [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public TwoWaySerializationBinder Binder
{
get
diff --git a/OdinSerializer/Core/DataReaderWriters/BaseDataReaderWriter.cs.meta b/OdinSerializer/Core/DataReaderWriters/BaseDataReaderWriter.cs.meta
index d348e6e..f8a39ea 100644
--- a/OdinSerializer/Core/DataReaderWriters/BaseDataReaderWriter.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/BaseDataReaderWriter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c0ad0077aa500e1a54e2f18a7643fbff
+guid: a5fadad2f0883669466229af151da847
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/BaseDataWriter.cs.meta b/OdinSerializer/Core/DataReaderWriters/BaseDataWriter.cs.meta
index 0c7f551..f9d8e48 100644
--- a/OdinSerializer/Core/DataReaderWriters/BaseDataWriter.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/BaseDataWriter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 431eafd59c71711dcfd92b46be873d88
+guid: 6a0bdb593be61f77c2f874aadd8396cf
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/Binary.meta b/OdinSerializer/Core/DataReaderWriters/Binary.meta
index bd042b0..5b137fa 100644
--- a/OdinSerializer/Core/DataReaderWriters/Binary.meta
+++ b/OdinSerializer/Core/DataReaderWriters/Binary.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ae5c0949e9108d64ba1fa2abc089271b
+guid: 27e6361d4ae3d694fb40773b8f0d55bd
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataReader.cs b/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataReader.cs
index 6b6f984..e72bbcf 100644
--- a/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataReader.cs
+++ b/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataReader.cs
@@ -437,9 +437,9 @@ public override bool EnterNode(out Type type)
}
else if (this.peekedBinaryEntryType == BinaryEntryType.NamedStartOfStructNode || this.peekedBinaryEntryType == BinaryEntryType.UnnamedStartOfStructNode)
{
- this.MarkEntryContentConsumed();
type = this.ReadTypeEntry();
this.PushNode(this.peekedEntryName, -1, type);
+ this.MarkEntryContentConsumed();
return true;
}
else
diff --git a/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataReader.cs.meta b/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataReader.cs.meta
index 14bee59..07031f1 100644
--- a/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataReader.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataReader.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 9c063bb1a588a4d4704676ae6f98c1d6
+guid: 2145ada735eaec39ef4bd9620550fddc
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataWriter.cs.meta b/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataWriter.cs.meta
index 3f50cd0..ee3d87c 100644
--- a/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataWriter.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/Binary/BinaryDataWriter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 8f18ccfcb3dbfe059068a7c5b45ce6f2
+guid: b2cdba3591ddb38d3f3ae2235753dd9a
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/Binary/BinaryEntryType.cs.meta b/OdinSerializer/Core/DataReaderWriters/Binary/BinaryEntryType.cs.meta
index ef59da7..d4b03c0 100644
--- a/OdinSerializer/Core/DataReaderWriters/Binary/BinaryEntryType.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/Binary/BinaryEntryType.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 465d980a5ef124d37d738bdcb386f8fd
+guid: c3fff16d4053796cc4202089d889afec
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/IDataReader.cs b/OdinSerializer/Core/DataReaderWriters/IDataReader.cs
index b3087b0..64a4974 100644
--- a/OdinSerializer/Core/DataReaderWriters/IDataReader.cs
+++ b/OdinSerializer/Core/DataReaderWriters/IDataReader.cs
@@ -46,8 +46,9 @@ public interface IDataReader : IDisposable
/// The base stream of the reader.
///
[Obsolete("Data readers and writers don't necessarily have streams any longer, so this API has been made obsolete. Using this property may result in NotSupportedExceptions being thrown.", false)]
+ [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
Stream Stream { get; set; }
-
+
///
/// Gets a value indicating whether the reader is in an array node.
///
diff --git a/OdinSerializer/Core/DataReaderWriters/IDataReader.cs.meta b/OdinSerializer/Core/DataReaderWriters/IDataReader.cs.meta
index f4176ef..64b6ae6 100644
--- a/OdinSerializer/Core/DataReaderWriters/IDataReader.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/IDataReader.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d1fb0aa682261ffee1f275958fe986ba
+guid: 9ae0c91679f50ee55d2d5a61a04509b7
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/IDataWriter.cs b/OdinSerializer/Core/DataReaderWriters/IDataWriter.cs
index 9e77e5d..d70d226 100644
--- a/OdinSerializer/Core/DataReaderWriters/IDataWriter.cs
+++ b/OdinSerializer/Core/DataReaderWriters/IDataWriter.cs
@@ -46,6 +46,7 @@ public interface IDataWriter : IDisposable
/// The base stream of the writer.
///
[Obsolete("Data readers and writers don't necessarily have streams any longer, so this API has been made obsolete. Using this property may result in NotSupportedExceptions being thrown.", false)]
+ [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
Stream Stream { get; set; }
///
diff --git a/OdinSerializer/Core/DataReaderWriters/IDataWriter.cs.meta b/OdinSerializer/Core/DataReaderWriters/IDataWriter.cs.meta
index f08a970..3ca8556 100644
--- a/OdinSerializer/Core/DataReaderWriters/IDataWriter.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/IDataWriter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 10c14e2efae9725234aa21d7f01ebdba
+guid: 380695d0dacb2f71e65106cfa677a539
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/Json.meta b/OdinSerializer/Core/DataReaderWriters/Json.meta
index ddf6b56..cb00312 100644
--- a/OdinSerializer/Core/DataReaderWriters/Json.meta
+++ b/OdinSerializer/Core/DataReaderWriters/Json.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 09915276f9d2b1e468dff02e7cec72d0
+guid: 28900961a9dd22544841e68af2927571
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Core/DataReaderWriters/Json/JsonConfig.cs b/OdinSerializer/Core/DataReaderWriters/Json/JsonConfig.cs
index b19fd4a..18de6c2 100644
--- a/OdinSerializer/Core/DataReaderWriters/Json/JsonConfig.cs
+++ b/OdinSerializer/Core/DataReaderWriters/Json/JsonConfig.cs
@@ -69,8 +69,13 @@ public static class JsonConfig
public const string EXTERNAL_GUID_REF_SIG = "$guidref";
///
- /// The beginning of the content of an external reference by string entry.
+ /// The beginning of the content of an external reference by string entry. This is an old entry using an invalid data format where the ref string is dumped inline without escaping.
///
- public const string EXTERNAL_STRING_REF_SIG = "$strref";
+ public const string EXTERNAL_STRING_REF_SIG_OLD = "$strref";
+
+ ///
+ /// The beginning of the content of an external reference by string entry. This is a new entry using the valid format where the ref string is written as an escaped string.
+ ///
+ public const string EXTERNAL_STRING_REF_SIG_FIXED = "$fstrref";
}
}
\ No newline at end of file
diff --git a/OdinSerializer/Core/DataReaderWriters/Json/JsonConfig.cs.meta b/OdinSerializer/Core/DataReaderWriters/Json/JsonConfig.cs.meta
index 35f3b60..6f27a3a 100644
--- a/OdinSerializer/Core/DataReaderWriters/Json/JsonConfig.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/Json/JsonConfig.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b6b57eb142f9e6710564dacd4a07c2d6
+guid: 99efe0a2d81cb056b01cbb0e6d5805d3
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/Json/JsonDataReader.cs b/OdinSerializer/Core/DataReaderWriters/Json/JsonDataReader.cs
index ebb34cf..96c771f 100644
--- a/OdinSerializer/Core/DataReaderWriters/Json/JsonDataReader.cs
+++ b/OdinSerializer/Core/DataReaderWriters/Json/JsonDataReader.cs
@@ -589,9 +589,13 @@ public override bool ReadExternalReference(out string id)
{
id = this.peekedEntryContent;
- if (id.StartsWith(JsonConfig.EXTERNAL_STRING_REF_SIG))
+ if (id.StartsWith(JsonConfig.EXTERNAL_STRING_REF_SIG_OLD))
{
- id = id.Substring(JsonConfig.EXTERNAL_STRING_REF_SIG.Length + 1);
+ id = id.Substring(JsonConfig.EXTERNAL_STRING_REF_SIG_OLD.Length + 1);
+ }
+ else if (id.StartsWith(JsonConfig.EXTERNAL_STRING_REF_SIG_FIXED))
+ {
+ id = id.Substring(JsonConfig.EXTERNAL_STRING_REF_SIG_FIXED.Length + 2, id.Length - (JsonConfig.EXTERNAL_STRING_REF_SIG_FIXED.Length + 3));
}
this.MarkEntryConsumed();
diff --git a/OdinSerializer/Core/DataReaderWriters/Json/JsonDataReader.cs.meta b/OdinSerializer/Core/DataReaderWriters/Json/JsonDataReader.cs.meta
index 77d7989..5402e5d 100644
--- a/OdinSerializer/Core/DataReaderWriters/Json/JsonDataReader.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/Json/JsonDataReader.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 841cc26ccbbfc259691d5b1c007641f2
+guid: 5448a06140a761ebf7e9d1167943f27d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/Json/JsonDataWriter.cs b/OdinSerializer/Core/DataReaderWriters/Json/JsonDataWriter.cs
index 2522eca..279a4a1 100644
--- a/OdinSerializer/Core/DataReaderWriters/Json/JsonDataWriter.cs
+++ b/OdinSerializer/Core/DataReaderWriters/Json/JsonDataWriter.cs
@@ -448,7 +448,12 @@ public override void WriteExternalReference(string name, string id)
throw new ArgumentNullException("id");
}
- this.WriteEntry(name, JsonConfig.EXTERNAL_STRING_REF_SIG + ":" + id);
+ this.WriteEntry(name, JsonConfig.EXTERNAL_STRING_REF_SIG_FIXED);
+ this.EnsureBufferSpace(id.Length + 3);
+ this.buffer[this.bufferIndex++] = (byte)':';
+ this.buffer[this.bufferIndex++] = (byte)'"';
+ this.Buffer_WriteString_WithEscape(id);
+ this.buffer[this.bufferIndex++] = (byte)'"';
}
///
diff --git a/OdinSerializer/Core/DataReaderWriters/Json/JsonDataWriter.cs.meta b/OdinSerializer/Core/DataReaderWriters/Json/JsonDataWriter.cs.meta
index e4252de..4578a4e 100644
--- a/OdinSerializer/Core/DataReaderWriters/Json/JsonDataWriter.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/Json/JsonDataWriter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 82554fff0956fb8296fabcf9ff5c1227
+guid: 000c7eaaeb9b1eed446e4fe9780a7802
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/Json/JsonTextReader.cs b/OdinSerializer/Core/DataReaderWriters/Json/JsonTextReader.cs
index 83c3f83..59ca995 100644
--- a/OdinSerializer/Core/DataReaderWriters/Json/JsonTextReader.cs
+++ b/OdinSerializer/Core/DataReaderWriters/Json/JsonTextReader.cs
@@ -451,9 +451,9 @@ private void ParseEntryFromBuffer(out string name, out string valueContent, out
return;
}
- if (string.Equals(name, JsonConfig.EXTERNAL_STRING_REF_SIG, StringComparison.InvariantCulture))
+ if (string.Equals(name, JsonConfig.EXTERNAL_STRING_REF_SIG_OLD, StringComparison.InvariantCulture))
{
- // It's an external guid reference without a name
+ // It's an external guid reference without a name, of the old broken kind
// The content is the whole buffer
name = null;
valueContent = new string(this.buffer, 0, this.bufferIndex + 1);
@@ -461,6 +461,16 @@ private void ParseEntryFromBuffer(out string name, out string valueContent, out
return;
}
+ if (string.Equals(name, JsonConfig.EXTERNAL_STRING_REF_SIG_FIXED, StringComparison.InvariantCulture))
+ {
+ // It's an external guid reference without a name, of the new non-broken kind
+ // The content is the buffer, unquoted and unescaped
+ name = null;
+ valueContent = new string(this.buffer, 0, this.bufferIndex + 1);
+ entry = EntryType.ExternalReferenceByString;
+ return;
+ }
+
if (this.bufferIndex >= valueSeparatorIndex)
{
valueContent = new string(this.buffer, valueSeparatorIndex + 1, this.bufferIndex - valueSeparatorIndex);
@@ -531,7 +541,12 @@ private void ParseEntryFromBuffer(out string name, out string valueContent, out
entry = EntryType.ExternalReferenceByGuid;
return;
}
- else if (valueContent.StartsWith(JsonConfig.EXTERNAL_STRING_REF_SIG, StringComparison.InvariantCulture))
+ else if (valueContent.StartsWith(JsonConfig.EXTERNAL_STRING_REF_SIG_OLD, StringComparison.InvariantCulture))
+ {
+ entry = EntryType.ExternalReferenceByString;
+ return;
+ }
+ else if (valueContent.StartsWith(JsonConfig.EXTERNAL_STRING_REF_SIG_FIXED, StringComparison.InvariantCulture))
{
entry = EntryType.ExternalReferenceByString;
return;
diff --git a/OdinSerializer/Core/DataReaderWriters/Json/JsonTextReader.cs.meta b/OdinSerializer/Core/DataReaderWriters/Json/JsonTextReader.cs.meta
index 33bb36d..317e369 100644
--- a/OdinSerializer/Core/DataReaderWriters/Json/JsonTextReader.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/Json/JsonTextReader.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 69d7213d63a2b19124262f6e49808aca
+guid: a5c00f6f0fb003acca7c5150a8960d76
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/SerializationNodes.meta b/OdinSerializer/Core/DataReaderWriters/SerializationNodes.meta
index 6ff57ea..d17f51a 100644
--- a/OdinSerializer/Core/DataReaderWriters/SerializationNodes.meta
+++ b/OdinSerializer/Core/DataReaderWriters/SerializationNodes.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 3948bf5a6aba09845991e17867c6148d
+guid: ab8776ff50a88e3459b0d80ad741ac11
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNode.cs.meta b/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNode.cs.meta
index 8d239dc..60d3ccc 100644
--- a/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNode.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNode.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 3ec13e52b53b003afc8b56e26dccb6f8
+guid: 1dec027230f3c3d805fc0cc1e2c35b50
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataReader.cs.meta b/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataReader.cs.meta
index b2f885a..bbd5ca4 100644
--- a/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataReader.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataReader.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 0b74f2f00640e5e072f0ea2d25eb3673
+guid: c1c7a36e246963247ea1a291e9d5f76a
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataReaderWriterConfig.cs.meta b/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataReaderWriterConfig.cs.meta
index 723fdf0..79ed4df 100644
--- a/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataReaderWriterConfig.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataReaderWriterConfig.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 16c58351737ee534ffc091bab6b49a7c
+guid: 3a6f2c050c88a20cb98347c2f7a7e9e2
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataWriter.cs.meta b/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataWriter.cs.meta
index 6afd0e5..60a907d 100644
--- a/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataWriter.cs.meta
+++ b/OdinSerializer/Core/DataReaderWriters/SerializationNodes/SerializationNodeDataWriter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 0740cd9008508b1df03cb3b0519a8225
+guid: 21e9ca2d8136f3cde0a7884079cc8a72
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/FormatterLocators.meta b/OdinSerializer/Core/FormatterLocators.meta
index 028eb0d..94eaadf 100644
--- a/OdinSerializer/Core/FormatterLocators.meta
+++ b/OdinSerializer/Core/FormatterLocators.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 12ce0d7a098fe934e896f53fa0f28537
+guid: 24acf931458625f459557bfb27710225
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Core/FormatterLocators/ArrayFormatterLocator.cs.meta b/OdinSerializer/Core/FormatterLocators/ArrayFormatterLocator.cs.meta
index 0234aab..b8528ae 100644
--- a/OdinSerializer/Core/FormatterLocators/ArrayFormatterLocator.cs.meta
+++ b/OdinSerializer/Core/FormatterLocators/ArrayFormatterLocator.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 0f781974c1594373ec22c93f05f21c24
+guid: b21b2925ccb4dd7ce1159bed33546089
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/FormatterLocators/DelegateFormatterLocator.cs.meta b/OdinSerializer/Core/FormatterLocators/DelegateFormatterLocator.cs.meta
index 5319e4e..a8a6d86 100644
--- a/OdinSerializer/Core/FormatterLocators/DelegateFormatterLocator.cs.meta
+++ b/OdinSerializer/Core/FormatterLocators/DelegateFormatterLocator.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 9d67abbc178dd1734f7a9feab09f2b5c
+guid: cd6d529a6612c50428aff2f647b7b618
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/FormatterLocators/FormatterLocator.cs b/OdinSerializer/Core/FormatterLocators/FormatterLocator.cs
index cebfc68..fd9201d 100644
--- a/OdinSerializer/Core/FormatterLocators/FormatterLocator.cs
+++ b/OdinSerializer/Core/FormatterLocators/FormatterLocator.cs
@@ -84,7 +84,7 @@ static FormatterLocator()
// Filter out various core .NET libraries and Unity engine assemblies
continue;
}
- else if (ass.GetName().Name == FormatterEmitter.PRE_EMITTED_ASSEMBLY_NAME || ass.IsDefined(typeof(EmittedAssemblyAttribute), true))
+ else if (ass.GetName().Name == FormatterEmitter.PRE_EMITTED_ASSEMBLY_NAME || ass.SafeIsDefined(typeof(EmittedAssemblyAttribute), true))
{
// Only include pre-emitted formatters if we are on an AOT platform.
// Pre-emitted formatters will not work in newer .NET runtimes due to
@@ -205,6 +205,7 @@ static FormatterLocator()
/// This can be used to hook into and extend the serialization system's formatter resolution logic.
///
[Obsolete("Use the new IFormatterLocator interface instead, and register your custom locator with the RegisterFormatterLocator assembly attribute.", true)]
+ [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public static event Func FormatterResolve
{
add { throw new NotSupportedException(); }
diff --git a/OdinSerializer/Core/FormatterLocators/FormatterLocator.cs.meta b/OdinSerializer/Core/FormatterLocators/FormatterLocator.cs.meta
index 8c5fe10..d472356 100644
--- a/OdinSerializer/Core/FormatterLocators/FormatterLocator.cs.meta
+++ b/OdinSerializer/Core/FormatterLocators/FormatterLocator.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 54a7d9f47f23f9a0f3910519009038e9
+guid: 5e18ffcb0216a7f984f1d7ad209b348d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/FormatterLocators/GenericCollectionFormatterLocator.cs.meta b/OdinSerializer/Core/FormatterLocators/GenericCollectionFormatterLocator.cs.meta
index 65572d3..9a9af6a 100644
--- a/OdinSerializer/Core/FormatterLocators/GenericCollectionFormatterLocator.cs.meta
+++ b/OdinSerializer/Core/FormatterLocators/GenericCollectionFormatterLocator.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 76d1e7f80b195e93146e0100a247ae57
+guid: b7312845a5a6d1c6881ff6d08f2f3b96
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/FormatterLocators/IFormatterLocator.cs.meta b/OdinSerializer/Core/FormatterLocators/IFormatterLocator.cs.meta
index 8b84223..f5e4f9d 100644
--- a/OdinSerializer/Core/FormatterLocators/IFormatterLocator.cs.meta
+++ b/OdinSerializer/Core/FormatterLocators/IFormatterLocator.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7c2eb005d86881820727c29847dba58d
+guid: b5f83b4bd7efd1d30b22178732beac49
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/FormatterLocators/ISerializableFormatterLocator.cs.meta b/OdinSerializer/Core/FormatterLocators/ISerializableFormatterLocator.cs.meta
index ecab7e5..a5ebb32 100644
--- a/OdinSerializer/Core/FormatterLocators/ISerializableFormatterLocator.cs.meta
+++ b/OdinSerializer/Core/FormatterLocators/ISerializableFormatterLocator.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 3acdf7b3b2df3428d712366822adfbb3
+guid: a883d22e750c0e39cb28c2aef1efb232
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/FormatterLocators/SelfFormatterLocator.cs.meta b/OdinSerializer/Core/FormatterLocators/SelfFormatterLocator.cs.meta
index 429146d..38c640d 100644
--- a/OdinSerializer/Core/FormatterLocators/SelfFormatterLocator.cs.meta
+++ b/OdinSerializer/Core/FormatterLocators/SelfFormatterLocator.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: bd813716506dcf4752b1cfe1a3b8a7bf
+guid: 6495cb68ebd81b850f7179e2641d82be
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/FormatterLocators/TypeFormatterLocator.cs.meta b/OdinSerializer/Core/FormatterLocators/TypeFormatterLocator.cs.meta
index a8ecf22..da22fa1 100644
--- a/OdinSerializer/Core/FormatterLocators/TypeFormatterLocator.cs.meta
+++ b/OdinSerializer/Core/FormatterLocators/TypeFormatterLocator.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c9d874c0775ffacf3d739d12c2f004a4
+guid: a6815b3cf64e185c1d9a2a336296fa78
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters.meta b/OdinSerializer/Core/Formatters.meta
index ce6b078..10b1fe3 100644
--- a/OdinSerializer/Core/Formatters.meta
+++ b/OdinSerializer/Core/Formatters.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 6a4db4079e00c204aa83aca1332f9961
+guid: 175bf29b05f2e2840b87ab419d854ef0
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Core/Formatters/ArrayFormatter.cs.meta b/OdinSerializer/Core/Formatters/ArrayFormatter.cs.meta
index 5069ca1..14bcf37 100644
--- a/OdinSerializer/Core/Formatters/ArrayFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/ArrayFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 779ff946e68d435e0c9ae1161c06fc1d
+guid: 7579be6c3e5e041981ed3fec70c3c9d4
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/ArrayListFormatter.cs.meta b/OdinSerializer/Core/Formatters/ArrayListFormatter.cs.meta
index b161352..8be8a9d 100644
--- a/OdinSerializer/Core/Formatters/ArrayListFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/ArrayListFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 711f34e6134181e8dbeb58bbfbf3d8eb
+guid: 21eb72397bc1c92bbd23c6c597de783a
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/BaseFormatter.cs.meta b/OdinSerializer/Core/Formatters/BaseFormatter.cs.meta
index c662676..4a4f9e8 100644
--- a/OdinSerializer/Core/Formatters/BaseFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/BaseFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 51435f6c17ba5b05360ceb5f881b92f2
+guid: 843643a933fb7788b848a564e660f141
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/DateTimeFormatter.cs.meta b/OdinSerializer/Core/Formatters/DateTimeFormatter.cs.meta
index 13c5543..c19cc64 100644
--- a/OdinSerializer/Core/Formatters/DateTimeFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/DateTimeFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ddeae54bc7449f8860fffbd314c153e9
+guid: d0c832787fff0ee5c7f8c3a482248838
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/DateTimeOffsetFormatter.cs.meta b/OdinSerializer/Core/Formatters/DateTimeOffsetFormatter.cs.meta
index 98836f0..0fb71bc 100644
--- a/OdinSerializer/Core/Formatters/DateTimeOffsetFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/DateTimeOffsetFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 85cfcd1a9de975ec6c088f579ed6a121
+guid: 3f6c75575d579c34fafd715e2631e4a9
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/DelegateFormatter.cs.meta b/OdinSerializer/Core/Formatters/DelegateFormatter.cs.meta
index d045666..218096d 100644
--- a/OdinSerializer/Core/Formatters/DelegateFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/DelegateFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 3d82e587953d03e24522d172a6693044
+guid: db83208b55399c954bc855c5da48b764
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/DerivedDictionaryFormatter.cs.meta b/OdinSerializer/Core/Formatters/DerivedDictionaryFormatter.cs.meta
index 78c7806..d574066 100644
--- a/OdinSerializer/Core/Formatters/DerivedDictionaryFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/DerivedDictionaryFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4180c4f741723129391ba948c27fe00a
+guid: 8c8bcdabcf3f4a13368f9402ff81280d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/DictionaryFormatter.cs.meta b/OdinSerializer/Core/Formatters/DictionaryFormatter.cs.meta
index 53b45c5..d165337 100644
--- a/OdinSerializer/Core/Formatters/DictionaryFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/DictionaryFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 420fed8c4c2eaa99ada5a1c4fd610870
+guid: 0d7f249b9cc2f220eebcd1abdb9f1934
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/DoubleLookupDictionaryFormatter.cs.meta b/OdinSerializer/Core/Formatters/DoubleLookupDictionaryFormatter.cs.meta
index e5116a6..5b79128 100644
--- a/OdinSerializer/Core/Formatters/DoubleLookupDictionaryFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/DoubleLookupDictionaryFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f9b4f5fb063afef6b74f815b8d0d279e
+guid: 5f3266377a7b19d23d03a96e2dfee65d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/EasyBaseFormatter.cs.meta b/OdinSerializer/Core/Formatters/EasyBaseFormatter.cs.meta
index 8774999..8c550a8 100644
--- a/OdinSerializer/Core/Formatters/EasyBaseFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/EasyBaseFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: bce9b47f42394259ae462847b2907174
+guid: 3b04eeb684fad203bad2b09aaa0980d5
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/EmittedFormatterAttribute.cs.meta b/OdinSerializer/Core/Formatters/EmittedFormatterAttribute.cs.meta
index 7300898..68c1721 100644
--- a/OdinSerializer/Core/Formatters/EmittedFormatterAttribute.cs.meta
+++ b/OdinSerializer/Core/Formatters/EmittedFormatterAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 3dd6ca26193ee761349340019e3e67c3
+guid: 4dd6ec9367601d43de228e64a8181ea1
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/EmptyTypeFormatter.cs.meta b/OdinSerializer/Core/Formatters/EmptyTypeFormatter.cs.meta
index 38da09a..80d853f 100644
--- a/OdinSerializer/Core/Formatters/EmptyTypeFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/EmptyTypeFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: cc487df17161eec912fe95d6043e405f
+guid: 04adfe3ed35c83ca1628cf63222458da
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/FormatterEmitter.cs b/OdinSerializer/Core/Formatters/FormatterEmitter.cs
index 3bda58e..b509fe4 100644
--- a/OdinSerializer/Core/Formatters/FormatterEmitter.cs
+++ b/OdinSerializer/Core/Formatters/FormatterEmitter.cs
@@ -42,6 +42,11 @@ namespace ToolBox.Serialization.OdinSerializer
///
public static class FormatterEmitter
{
+ ///
+ /// Used for generating unique formatter helper type names.
+ ///
+ private static int helperFormatterNameId;
+
///
/// The name of the pre-generated assembly that contains pre-emitted formatters for use on AOT platforms where emitting is not supported. Note that this assembly is not always present.
///
@@ -290,6 +295,7 @@ out memberNames
return result;
}
+
private static IFormatter CreateGenericFormatter(Type formattedType, ModuleBuilder moduleBuilder, ISerializationPolicy policy)
{
Dictionary serializableMembers = FormatterUtilities.GetSerializableMembersMap(formattedType, policy);
@@ -299,7 +305,10 @@ private static IFormatter CreateGenericFormatter(Type formattedType, ModuleBuild
return (IFormatter)Activator.CreateInstance(typeof(EmptyTypeFormatter<>).MakeGenericType(formattedType));
}
- string helperTypeName = moduleBuilder.Name + "." + formattedType.GetCompilableNiceFullName() + "___" + formattedType.Assembly.GetName().Name + "___FormatterHelper___" + Guid.NewGuid().ToString();
+ string helperTypeName = moduleBuilder.Name + "." +
+ formattedType.GetCompilableNiceFullName() + "___" +
+ formattedType.Assembly.GetName().Name + "___FormatterHelper___" +
+ System.Threading.Interlocked.Increment(ref helperFormatterNameId);
Dictionary serializerReadMethods;
Dictionary serializerWriteMethods;
diff --git a/OdinSerializer/Core/Formatters/FormatterEmitter.cs.meta b/OdinSerializer/Core/Formatters/FormatterEmitter.cs.meta
index 3ee3964..6c560f3 100644
--- a/OdinSerializer/Core/Formatters/FormatterEmitter.cs.meta
+++ b/OdinSerializer/Core/Formatters/FormatterEmitter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 72bf9201d7bbd0c440099f038247a37c
+guid: 68d197d9127cb37b114dd420c8e2dbb9
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/GenericCollectionFormatter.cs.meta b/OdinSerializer/Core/Formatters/GenericCollectionFormatter.cs.meta
index cc34905..73af06e 100644
--- a/OdinSerializer/Core/Formatters/GenericCollectionFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/GenericCollectionFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: cd74548a76312451e50638468a971d3c
+guid: 707c24528047cacbe13ad82d1bef1954
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/HashSetFormatter.cs.meta b/OdinSerializer/Core/Formatters/HashSetFormatter.cs.meta
index 97e4e15..07842c2 100644
--- a/OdinSerializer/Core/Formatters/HashSetFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/HashSetFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7e72d9f71026c12864625a38a9e76086
+guid: c5661456c5c273b6ffc40538f8950baa
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/IFormatter.cs.meta b/OdinSerializer/Core/Formatters/IFormatter.cs.meta
index 83039fe..53580d2 100644
--- a/OdinSerializer/Core/Formatters/IFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/IFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b8746c10ede3a3d4168f8c001c3e5556
+guid: e2c4e2d93ba7f66267b859de1289b1b8
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/KeyValuePairFormatter.cs.meta b/OdinSerializer/Core/Formatters/KeyValuePairFormatter.cs.meta
index 8a80906..2de37b4 100644
--- a/OdinSerializer/Core/Formatters/KeyValuePairFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/KeyValuePairFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 574e95d5b106ef3a4fabc0b0b26e2d61
+guid: 9a203d5eb2a62f6c6c0885c1ce493686
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/ListFormatter.cs.meta b/OdinSerializer/Core/Formatters/ListFormatter.cs.meta
index bb8207d..c4bbf44 100644
--- a/OdinSerializer/Core/Formatters/ListFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/ListFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 48ebb0ccbeb8d43879607a7d72d70060
+guid: 56b84374ad14e323f8e90945275896d5
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/MethodInfoFormatter.cs.meta b/OdinSerializer/Core/Formatters/MethodInfoFormatter.cs.meta
index 18eb565..1b68b69 100644
--- a/OdinSerializer/Core/Formatters/MethodInfoFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/MethodInfoFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: fa72702d86546c394379f3a421e289a4
+guid: 8283dd601ab97d40aeda804edbaa8216
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/MinimalBaseFormatter.cs.meta b/OdinSerializer/Core/Formatters/MinimalBaseFormatter.cs.meta
index 1251a3b..178284d 100644
--- a/OdinSerializer/Core/Formatters/MinimalBaseFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/MinimalBaseFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d2692b817f8ddc122796244c6dcc5f35
+guid: 9a1f0db00e4dac731d8f659a89c5a396
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/MultiDimensionalArrayFormatter.cs.meta b/OdinSerializer/Core/Formatters/MultiDimensionalArrayFormatter.cs.meta
index 481b357..de83ff2 100644
--- a/OdinSerializer/Core/Formatters/MultiDimensionalArrayFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/MultiDimensionalArrayFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4c20737da06a29c0a073c5e10d2cb22f
+guid: e9c668542a44ad6d30f3395201fcb90f
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/NullableFormatter.cs.meta b/OdinSerializer/Core/Formatters/NullableFormatter.cs.meta
index 60a8f70..f5a3fb3 100644
--- a/OdinSerializer/Core/Formatters/NullableFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/NullableFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f45111ee1a19408dfd23d20c2492d59c
+guid: f234a6f5ae8faeb4fbb42314910cfb86
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/PrimitiveArrayFormatter.cs.meta b/OdinSerializer/Core/Formatters/PrimitiveArrayFormatter.cs.meta
index 6df6010..b99cd0e 100644
--- a/OdinSerializer/Core/Formatters/PrimitiveArrayFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/PrimitiveArrayFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: e63a942b2c60503c4c68010597358a45
+guid: b6b3193e39edcbcf1ec5710ceca4e564
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/QueueFormatter.cs.meta b/OdinSerializer/Core/Formatters/QueueFormatter.cs.meta
index 2f1c18e..377cad3 100644
--- a/OdinSerializer/Core/Formatters/QueueFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/QueueFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 8ebc06907f18a7586e6d60e22e1d9703
+guid: 56d552b54540cbfd3d8ef90a231511c1
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/ReflectionFormatter.cs.meta b/OdinSerializer/Core/Formatters/ReflectionFormatter.cs.meta
index df61705..06bd875 100644
--- a/OdinSerializer/Core/Formatters/ReflectionFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/ReflectionFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 26655938902ce0270f84c086c035f118
+guid: 2c79d9aac41320abd8e2910e33630da1
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/ReflectionOrEmittedBaseFormatter.cs.meta b/OdinSerializer/Core/Formatters/ReflectionOrEmittedBaseFormatter.cs.meta
index b721dec..4663d2b 100644
--- a/OdinSerializer/Core/Formatters/ReflectionOrEmittedBaseFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/ReflectionOrEmittedBaseFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a0b356770b0cf5cf9fb67bc201985f0b
+guid: 31b0f6f427611a8f26956fd68c07b402
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/SelfFormatterFormatter.cs.meta b/OdinSerializer/Core/Formatters/SelfFormatterFormatter.cs.meta
index b6d6388..7546f9f 100644
--- a/OdinSerializer/Core/Formatters/SelfFormatterFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/SelfFormatterFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c44e6ad1169f5a4ea07a02b278bcd648
+guid: 9e51d8184cb11cf9171aec7f3ce8486d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/SerializableFormatter.cs.meta b/OdinSerializer/Core/Formatters/SerializableFormatter.cs.meta
index 8d6dc99..cf98ee1 100644
--- a/OdinSerializer/Core/Formatters/SerializableFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/SerializableFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 42048c3442d547820522d073eb68ae3c
+guid: c98a6873875e1825170c2542c362d90c
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/StackFormatter.cs b/OdinSerializer/Core/Formatters/StackFormatter.cs
index 8996a01..6531ba2 100644
--- a/OdinSerializer/Core/Formatters/StackFormatter.cs
+++ b/OdinSerializer/Core/Formatters/StackFormatter.cs
@@ -22,6 +22,7 @@
namespace ToolBox.Serialization.OdinSerializer
{
+ using Utilities;
using System;
using System.Collections.Generic;
@@ -34,8 +35,6 @@ public class StackFormatter : BaseFormatter
where TStack : Stack, new()
{
private static readonly Serializer TSerializer = Serializer.Get();
- private static readonly object List_LOCK = new object();
- private static readonly List List = new List();
private static readonly bool IsPlainStack = typeof(TStack) == typeof(Stack);
static StackFormatter()
@@ -132,20 +131,21 @@ protected override void SerializeImplementation(ref TStack value, IDataWriter wr
{
writer.BeginArrayNode(value.Count);
- lock (List_LOCK)
+ using (var listCache = Cache>.Claim())
{
- List.Clear();
+ var list = listCache.Value;
+ list.Clear();
foreach (var element in value)
{
- List.Add(element);
+ list.Add(element);
}
- for (int i = List.Count - 1; i >= 0; i--)
+ for (int i = list.Count - 1; i >= 0; i--)
{
try
{
- TSerializer.WriteValue(List[i], writer);
+ TSerializer.WriteValue(list[i], writer);
}
catch (Exception ex)
{
diff --git a/OdinSerializer/Core/Formatters/StackFormatter.cs.meta b/OdinSerializer/Core/Formatters/StackFormatter.cs.meta
index 8a8339a..bd33d58 100644
--- a/OdinSerializer/Core/Formatters/StackFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/StackFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 6b38a6ec135e3d2bf6cbc9922cb69a3d
+guid: 1cc91d8b982146988024eeb0e598578b
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/TimeSpanFormatter.cs.meta b/OdinSerializer/Core/Formatters/TimeSpanFormatter.cs.meta
index e666344..144451e 100644
--- a/OdinSerializer/Core/Formatters/TimeSpanFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/TimeSpanFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 6ebe041b5e6300bff608943ef4ff5098
+guid: 104386dd61e3cd9a48bdf4fd569d5cd3
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/TypeFormatter.cs.meta b/OdinSerializer/Core/Formatters/TypeFormatter.cs.meta
index b47aa97..1850499 100644
--- a/OdinSerializer/Core/Formatters/TypeFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/TypeFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: e7771e621a0c1c32d57846e1bf8b0ef5
+guid: 4f40649fbb4cc0f022a00f2e0ad868fa
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Formatters/VersionFormatter.cs.meta b/OdinSerializer/Core/Formatters/VersionFormatter.cs.meta
index 4b1e005..535d5ee 100644
--- a/OdinSerializer/Core/Formatters/VersionFormatter.cs.meta
+++ b/OdinSerializer/Core/Formatters/VersionFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f04e76e49453dccf8f8d2f2ea7e3a90f
+guid: ec4a83dc7ab665f20bcf05e6ff2bddaa
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc.meta b/OdinSerializer/Core/Misc.meta
index 26ba41e..7a49c7f 100644
--- a/OdinSerializer/Core/Misc.meta
+++ b/OdinSerializer/Core/Misc.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: add1f67a166cb8a4f9b80c40094e68b5
+guid: 3c0af62b8c9cbe043930d86fbc35c929
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Core/Misc/AllowDeserializeInvalidDataAttribute.cs.meta b/OdinSerializer/Core/Misc/AllowDeserializeInvalidDataAttribute.cs.meta
index b9afd36..f3f31f3 100644
--- a/OdinSerializer/Core/Misc/AllowDeserializeInvalidDataAttribute.cs.meta
+++ b/OdinSerializer/Core/Misc/AllowDeserializeInvalidDataAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 21c8b36168a6ccd7cfe0cd8aa317e76e
+guid: 15561f286f0e4bdc32f3d08187beb5c3
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/AlwaysFormatsSelfAttribute.cs.meta b/OdinSerializer/Core/Misc/AlwaysFormatsSelfAttribute.cs.meta
index d7cc269..ac4ef34 100644
--- a/OdinSerializer/Core/Misc/AlwaysFormatsSelfAttribute.cs.meta
+++ b/OdinSerializer/Core/Misc/AlwaysFormatsSelfAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 120bebf12a2d92412b1d66c27892eff6
+guid: 908613df151eb8c140dbad0876931b4d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/ArchitectureInfo.cs.meta b/OdinSerializer/Core/Misc/ArchitectureInfo.cs.meta
index 2d9c4b3..94c2e32 100644
--- a/OdinSerializer/Core/Misc/ArchitectureInfo.cs.meta
+++ b/OdinSerializer/Core/Misc/ArchitectureInfo.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 945a0a6ce7cc1da59fec206337e48fc5
+guid: ecd25315e2dce51ff0666a4304be0476
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/Buffer.cs.meta b/OdinSerializer/Core/Misc/Buffer.cs.meta
index fc7403a..12fc51f 100644
--- a/OdinSerializer/Core/Misc/Buffer.cs.meta
+++ b/OdinSerializer/Core/Misc/Buffer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 5a344f72b64e6d7b8d5247fabdaec128
+guid: fda1f43d69ca630e1a36ab491f21a4d7
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/CachedMemoryStream.cs.meta b/OdinSerializer/Core/Misc/CachedMemoryStream.cs.meta
index 955e838..9b2e535 100644
--- a/OdinSerializer/Core/Misc/CachedMemoryStream.cs.meta
+++ b/OdinSerializer/Core/Misc/CachedMemoryStream.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f94441c4398027d1ffdcfaece114b89a
+guid: dbebe527c2bd6a911ad1500fc2adf705
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/CustomFormatterAttribute.cs b/OdinSerializer/Core/Misc/CustomFormatterAttribute.cs
index 8bf7d7b..9b5ca5b 100644
--- a/OdinSerializer/Core/Misc/CustomFormatterAttribute.cs
+++ b/OdinSerializer/Core/Misc/CustomFormatterAttribute.cs
@@ -26,6 +26,7 @@ namespace ToolBox.Serialization.OdinSerializer
///
[AttributeUsage(AttributeTargets.Class)]
[Obsolete("Use a RegisterFormatterAttribute applied to the containing assembly instead.", true)]
+ [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public class CustomFormatterAttribute : Attribute
{
///
diff --git a/OdinSerializer/Core/Misc/CustomFormatterAttribute.cs.meta b/OdinSerializer/Core/Misc/CustomFormatterAttribute.cs.meta
index 1437118..fea9f08 100644
--- a/OdinSerializer/Core/Misc/CustomFormatterAttribute.cs.meta
+++ b/OdinSerializer/Core/Misc/CustomFormatterAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 6efe5fda8240036aa0c38472ec90b86b
+guid: 514fc47ba2db8945f873f2151b202d4c
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/CustomGenericFormatterAttribute.cs b/OdinSerializer/Core/Misc/CustomGenericFormatterAttribute.cs
index ece4f98..eef1f2a 100644
--- a/OdinSerializer/Core/Misc/CustomGenericFormatterAttribute.cs
+++ b/OdinSerializer/Core/Misc/CustomGenericFormatterAttribute.cs
@@ -30,6 +30,7 @@ namespace ToolBox.Serialization.OdinSerializer
///
[AttributeUsage(AttributeTargets.Class)]
[Obsolete("Use a RegisterFormatterAttribute applied to the containing assembly instead.", true)]
+ [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public class CustomGenericFormatterAttribute : CustomFormatterAttribute
{
///
diff --git a/OdinSerializer/Core/Misc/CustomGenericFormatterAttribute.cs.meta b/OdinSerializer/Core/Misc/CustomGenericFormatterAttribute.cs.meta
index 2728c8f..3225df1 100644
--- a/OdinSerializer/Core/Misc/CustomGenericFormatterAttribute.cs.meta
+++ b/OdinSerializer/Core/Misc/CustomGenericFormatterAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 9e82d0697cd5d84031034f2efbe68d18
+guid: cd3a47ca784d41492dcad6264a69a25c
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/CustomLogger.cs.meta b/OdinSerializer/Core/Misc/CustomLogger.cs.meta
index 0ff3971..292a767 100644
--- a/OdinSerializer/Core/Misc/CustomLogger.cs.meta
+++ b/OdinSerializer/Core/Misc/CustomLogger.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: bf5f5868631e38af6f434642d88deffb
+guid: eb1e1be239bca9873d5df2e3ffb13f24
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/CustomSerializationPolicy.cs.meta b/OdinSerializer/Core/Misc/CustomSerializationPolicy.cs.meta
index c1a6275..ee53f58 100644
--- a/OdinSerializer/Core/Misc/CustomSerializationPolicy.cs.meta
+++ b/OdinSerializer/Core/Misc/CustomSerializationPolicy.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 68b041454f3a0a4a3f38a515ed912904
+guid: 753318f51a2837ecbbbe3acc6758c14a
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/DataFormat.cs.meta b/OdinSerializer/Core/Misc/DataFormat.cs.meta
index 6cb42a2..bccdd3e 100644
--- a/OdinSerializer/Core/Misc/DataFormat.cs.meta
+++ b/OdinSerializer/Core/Misc/DataFormat.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f17fcdf9101ce8dfe87c5c78300287f7
+guid: ea69db5df9a76f3c31bac05e05db2dbf
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/DefaultLoggers.cs.meta b/OdinSerializer/Core/Misc/DefaultLoggers.cs.meta
index 50c203d..b9256d9 100644
--- a/OdinSerializer/Core/Misc/DefaultLoggers.cs.meta
+++ b/OdinSerializer/Core/Misc/DefaultLoggers.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 27043ceec0624ae1726e19c05a9d095f
+guid: 93fb1963b681b9d5f15762f06a26d867
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/DefaultSerializationBinder.cs b/OdinSerializer/Core/Misc/DefaultSerializationBinder.cs
index 80724ad..3ed6172 100644
--- a/OdinSerializer/Core/Misc/DefaultSerializationBinder.cs
+++ b/OdinSerializer/Core/Misc/DefaultSerializationBinder.cs
@@ -85,9 +85,6 @@ public class DefaultSerializationBinder : TwoWaySerializationBinder
private static readonly object NAMETOTYPE_LOCK = new object();
private static readonly Dictionary typeMap = new Dictionary();
- private static readonly List genericArgNamesList = new List();
- private static readonly List genericArgTypesList = new List();
-
private static readonly object ASSEMBLY_REGISTER_QUEUE_LOCK = new object();
private static readonly List assembliesQueuedForRegister = new List();
private static readonly List assemblyLoadEventsQueuedForRegister = new List();
@@ -476,42 +473,53 @@ private Type ParseGenericAndOrArrayType(string typeName, DebugContext debugConte
{
if (!type.IsGenericType) return null;
- List args = genericArgTypesList;
- args.Clear();
-
- for (int i = 0; i < genericArgNames.Count; i++)
+ using (var argsCache = Cache>.Claim())
{
- Type arg = this.BindToType(genericArgNames[i], debugContext);
- if (arg == null) return null;
- args.Add(arg);
- }
+ List args = argsCache.Value;
+ args.Clear();
- var argsArray = args.ToArray();
-
- if (!type.AreGenericConstraintsSatisfiedBy(argsArray))
- {
- if (debugContext != null)
+ for (int i = 0; i < genericArgNames.Count; i++)
{
- string argsStr = "";
+ Type arg = this.BindToType(genericArgNames[i], debugContext);
+ if (arg == null) return null;
+ args.Add(arg);
+ }
+
+ var argsArray = args.ToArray();
- foreach (var arg in args)
+ if (!type.AreGenericConstraintsSatisfiedBy(argsArray))
+ {
+ if (debugContext != null)
{
- if (argsStr != "") argsStr += ", ";
- argsStr += arg.GetNiceFullName();
+ string argsStr = "";
+
+ foreach (var arg in argsArray)
+ {
+ if (argsStr != "") argsStr += ", ";
+ argsStr += arg.GetNiceFullName();
+ }
+
+ debugContext.LogWarning("Deserialization type lookup failure: The generic type arguments '" + argsStr + "' do not satisfy the generic constraints of generic type definition '" + type.GetNiceFullName() + "'. All this parsed from the full type name string: '" + typeName + "'");
}
- debugContext.LogWarning("Deserialization type lookup failure: The generic type arguments '" + argsStr + "' do not satisfy the generic constraints of generic type definition '" + type.GetNiceFullName() + "'. All this parsed from the full type name string: '" + typeName + "'");
+ return null;
}
- return null;
+ type = type.MakeGenericType(argsArray);
+ args.Clear();
}
-
- type = type.MakeGenericType(argsArray);
}
if (isArray)
{
- type = type.MakeArrayType(arrayRank);
+ if (arrayRank == 1)
+ {
+ type = type.MakeArrayType();
+ }
+ else
+ {
+ type = type.MakeArrayType(arrayRank);
+ }
}
return type;
@@ -566,8 +574,7 @@ private static bool TryParseGenericAndOrArrayTypeName(string typeName, out strin
actualTypeName = typeName.Substring(0, i);
isGeneric = true;
parsingGenericArguments = true;
- genericArgNames = genericArgNamesList;
- genericArgNames.Clear();
+ genericArgNames = new List();
}
else if (isGeneric && ReadGenericArg(typeName, ref i, out argName))
{
diff --git a/OdinSerializer/Core/Misc/DefaultSerializationBinder.cs.meta b/OdinSerializer/Core/Misc/DefaultSerializationBinder.cs.meta
index 839dd57..226c141 100644
--- a/OdinSerializer/Core/Misc/DefaultSerializationBinder.cs.meta
+++ b/OdinSerializer/Core/Misc/DefaultSerializationBinder.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 94209d41a84d6aac0bceb22bc6158202
+guid: 3bbf2f460763ca7749ec5afd84ee2c8c
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/DeserializationContext.cs.meta b/OdinSerializer/Core/Misc/DeserializationContext.cs.meta
index 5632ec2..d822244 100644
--- a/OdinSerializer/Core/Misc/DeserializationContext.cs.meta
+++ b/OdinSerializer/Core/Misc/DeserializationContext.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: efc0f499f9b02056f397eadbda7b91cd
+guid: c4f30ee8364be1afbcf1cb45efdc69be
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/EmittedAssemblyAttribute.cs b/OdinSerializer/Core/Misc/EmittedAssemblyAttribute.cs
index 0ff8eb5..3629d1e 100644
--- a/OdinSerializer/Core/Misc/EmittedAssemblyAttribute.cs
+++ b/OdinSerializer/Core/Misc/EmittedAssemblyAttribute.cs
@@ -21,6 +21,7 @@ namespace ToolBox.Serialization.OdinSerializer
using System;
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]
+ [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public sealed class EmittedAssemblyAttribute : Attribute
{
[Obsolete("This attribute cannot be used in code, and is only meant to be applied to dynamically emitted assemblies.", true)]
diff --git a/OdinSerializer/Core/Misc/EmittedAssemblyAttribute.cs.meta b/OdinSerializer/Core/Misc/EmittedAssemblyAttribute.cs.meta
index 88f4ada..5398592 100644
--- a/OdinSerializer/Core/Misc/EmittedAssemblyAttribute.cs.meta
+++ b/OdinSerializer/Core/Misc/EmittedAssemblyAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f4ea0f7e9f76a9d899ac3fed97d5d6d2
+guid: 4db048211b335931aec3df20461bcc7f
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/EntryType.cs.meta b/OdinSerializer/Core/Misc/EntryType.cs.meta
index c61593b..e5d19ec 100644
--- a/OdinSerializer/Core/Misc/EntryType.cs.meta
+++ b/OdinSerializer/Core/Misc/EntryType.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 16e6fb94765a6e430ef58c57f6749087
+guid: 90005ff1f2ae853832c82b3aced9a1dc
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/ErrorHandlingPolicy.cs.meta b/OdinSerializer/Core/Misc/ErrorHandlingPolicy.cs.meta
index 890ca78..9fef2b9 100644
--- a/OdinSerializer/Core/Misc/ErrorHandlingPolicy.cs.meta
+++ b/OdinSerializer/Core/Misc/ErrorHandlingPolicy.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c2461b9279f58438891fdae2addecf85
+guid: c4cde8f46393ecdcd60735292d7ae7ec
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/ExcludeDataFromInspectorAttribute.cs b/OdinSerializer/Core/Misc/ExcludeDataFromInspectorAttribute.cs
index 2676af7..c241d19 100644
--- a/OdinSerializer/Core/Misc/ExcludeDataFromInspectorAttribute.cs
+++ b/OdinSerializer/Core/Misc/ExcludeDataFromInspectorAttribute.cs
@@ -28,6 +28,7 @@ namespace ToolBox.Serialization.OdinSerializer
///
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
[Obsolete("Use [HideInInspector] instead - it now also excludes the member completely from becoming a property in the property tree.", false)]
+ [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public sealed class ExcludeDataFromInspectorAttribute : Attribute
{
}
diff --git a/OdinSerializer/Core/Misc/ExcludeDataFromInspectorAttribute.cs.meta b/OdinSerializer/Core/Misc/ExcludeDataFromInspectorAttribute.cs.meta
index 2b15dfb..c9fb9b2 100644
--- a/OdinSerializer/Core/Misc/ExcludeDataFromInspectorAttribute.cs.meta
+++ b/OdinSerializer/Core/Misc/ExcludeDataFromInspectorAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: defe2c4cf6af20d2bfcd2ec25972760b
+guid: 63d0bbfe95edbe25c413299087bc3545
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/FormatterLocationStep.cs.meta b/OdinSerializer/Core/Misc/FormatterLocationStep.cs.meta
index 9deb505..adb6b4f 100644
--- a/OdinSerializer/Core/Misc/FormatterLocationStep.cs.meta
+++ b/OdinSerializer/Core/Misc/FormatterLocationStep.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 41ac75a3f53579afdde45f7e9b0b1e87
+guid: 4186c3e75ca61ec414665d67bc00f2cb
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/FormatterUtilities.cs.meta b/OdinSerializer/Core/Misc/FormatterUtilities.cs.meta
index 14fc031..8747f3f 100644
--- a/OdinSerializer/Core/Misc/FormatterUtilities.cs.meta
+++ b/OdinSerializer/Core/Misc/FormatterUtilities.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: e5fcad26aa1d47fd4e28813ab327e4fa
+guid: c8b7de9af7305dc1fe9000cc652b4b04
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/IAskIfCanFormatTypes.cs.meta b/OdinSerializer/Core/Misc/IAskIfCanFormatTypes.cs.meta
index 6ec2606..0b619e1 100644
--- a/OdinSerializer/Core/Misc/IAskIfCanFormatTypes.cs.meta
+++ b/OdinSerializer/Core/Misc/IAskIfCanFormatTypes.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1cfbe70b180ba75989053c6606895301
+guid: ea214b1e6e10341af10298a000611b59
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/IExternalGuidReferenceResolver.cs.meta b/OdinSerializer/Core/Misc/IExternalGuidReferenceResolver.cs.meta
index c829baa..9c25aa5 100644
--- a/OdinSerializer/Core/Misc/IExternalGuidReferenceResolver.cs.meta
+++ b/OdinSerializer/Core/Misc/IExternalGuidReferenceResolver.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 6c45cf9effb074350b330a37330756e6
+guid: 081d7187f22976baa42e2e0497a6c1e5
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/IExternalIndexReferenceResolver.cs.meta b/OdinSerializer/Core/Misc/IExternalIndexReferenceResolver.cs.meta
index 8ef1f86..539d644 100644
--- a/OdinSerializer/Core/Misc/IExternalIndexReferenceResolver.cs.meta
+++ b/OdinSerializer/Core/Misc/IExternalIndexReferenceResolver.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: fb64e530ebded67fb017c964469ecdf0
+guid: 61f551b2704645c7d90e7970607e4b8f
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/IExternalStringReferenceResolver.cs.meta b/OdinSerializer/Core/Misc/IExternalStringReferenceResolver.cs.meta
index 342b9f0..8a75754 100644
--- a/OdinSerializer/Core/Misc/IExternalStringReferenceResolver.cs.meta
+++ b/OdinSerializer/Core/Misc/IExternalStringReferenceResolver.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 521ddd571f083e48f6e40a7b3673a33b
+guid: 2dad660b897f3a62859bfbd81b9ce92e
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/ILogger.cs.meta b/OdinSerializer/Core/Misc/ILogger.cs.meta
index edc07d5..19d43a3 100644
--- a/OdinSerializer/Core/Misc/ILogger.cs.meta
+++ b/OdinSerializer/Core/Misc/ILogger.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7382071650caa0fb27e566fde597dac3
+guid: 1056d25f39a34fc8e7fa19a5220358bb
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/ISelfFormatter.cs.meta b/OdinSerializer/Core/Misc/ISelfFormatter.cs.meta
index cb0f562..d5323a9 100644
--- a/OdinSerializer/Core/Misc/ISelfFormatter.cs.meta
+++ b/OdinSerializer/Core/Misc/ISelfFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7632ec01b04265e3003af2191346c448
+guid: 95ea83151b66b9663ca438a63aa219b3
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/ISerializationPolicy.cs.meta b/OdinSerializer/Core/Misc/ISerializationPolicy.cs.meta
index 08d94c6..22c2172 100644
--- a/OdinSerializer/Core/Misc/ISerializationPolicy.cs.meta
+++ b/OdinSerializer/Core/Misc/ISerializationPolicy.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 5757775e2eba64c574d866c704e9ade2
+guid: 2cd7797892d51a13f89117e5c56f5cdf
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/LoggingPolicy.cs.meta b/OdinSerializer/Core/Misc/LoggingPolicy.cs.meta
index 532bd83..571706b 100644
--- a/OdinSerializer/Core/Misc/LoggingPolicy.cs.meta
+++ b/OdinSerializer/Core/Misc/LoggingPolicy.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4cc3b94579317581379182eb5c660afc
+guid: 85e0b1765636d6be96b7760fb73cc248
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/NodeInfo.cs.meta b/OdinSerializer/Core/Misc/NodeInfo.cs.meta
index 5f9011e..aa683e3 100644
--- a/OdinSerializer/Core/Misc/NodeInfo.cs.meta
+++ b/OdinSerializer/Core/Misc/NodeInfo.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 5bd6334a25056d1b4407363fdfe40fdf
+guid: f46076deca79d656e5fd127bd143e7ab
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/OdinSerializeAttribute.cs.meta b/OdinSerializer/Core/Misc/OdinSerializeAttribute.cs.meta
index 5abb585..4845ca3 100644
--- a/OdinSerializer/Core/Misc/OdinSerializeAttribute.cs.meta
+++ b/OdinSerializer/Core/Misc/OdinSerializeAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ee319703ca200b34cc3e9b39c7e56dbd
+guid: 839c9143a982625c586c60e1b2de5fee
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/PrefabModification.cs.meta b/OdinSerializer/Core/Misc/PrefabModification.cs.meta
index 58113dd..8f60014 100644
--- a/OdinSerializer/Core/Misc/PrefabModification.cs.meta
+++ b/OdinSerializer/Core/Misc/PrefabModification.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 67906f5eab9c91786458c46ed55b9e5d
+guid: 113ca5f60d4996acbc71282919070600
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/PrefabModificationType.cs.meta b/OdinSerializer/Core/Misc/PrefabModificationType.cs.meta
index 8bc9816..606799c 100644
--- a/OdinSerializer/Core/Misc/PrefabModificationType.cs.meta
+++ b/OdinSerializer/Core/Misc/PrefabModificationType.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 2d2f900b20922b3558f1090e26df6a84
+guid: 78380b98de5a74dcafadd82d80610ffd
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/PreviouslySerializedAsAttribute.cs.meta b/OdinSerializer/Core/Misc/PreviouslySerializedAsAttribute.cs.meta
index b2cffe6..39c6148 100644
--- a/OdinSerializer/Core/Misc/PreviouslySerializedAsAttribute.cs.meta
+++ b/OdinSerializer/Core/Misc/PreviouslySerializedAsAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: aee7b94e8c874983170f48da8c76bed1
+guid: c9b782a5873856d3910ea00689532bf2
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/ProperBitConverter.cs.meta b/OdinSerializer/Core/Misc/ProperBitConverter.cs.meta
index e207d42..b21fcf8 100644
--- a/OdinSerializer/Core/Misc/ProperBitConverter.cs.meta
+++ b/OdinSerializer/Core/Misc/ProperBitConverter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: be4a3a40cde7978ff8eb5ff24f6b47b4
+guid: ae2285574c85baa279ab0e356ad54830
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/RegisterFormatterAttribute.cs.meta b/OdinSerializer/Core/Misc/RegisterFormatterAttribute.cs.meta
index a0ef0ae..70dd3da 100644
--- a/OdinSerializer/Core/Misc/RegisterFormatterAttribute.cs.meta
+++ b/OdinSerializer/Core/Misc/RegisterFormatterAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: da483c7739f5d8d210f200cd752fd41a
+guid: 1af1de19921b4dcd3c6928199c352d3d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/RegisterFormatterLocatorAttribute.cs.meta b/OdinSerializer/Core/Misc/RegisterFormatterLocatorAttribute.cs.meta
index dbdd1ea..ebc13da 100644
--- a/OdinSerializer/Core/Misc/RegisterFormatterLocatorAttribute.cs.meta
+++ b/OdinSerializer/Core/Misc/RegisterFormatterLocatorAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 396b4d6a9e45a91c0bb570b95ef10b6d
+guid: 6e944884c461f7f6a937dffdced30490
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/SerializationAbortException.cs.meta b/OdinSerializer/Core/Misc/SerializationAbortException.cs.meta
index bbca149..07169a6 100644
--- a/OdinSerializer/Core/Misc/SerializationAbortException.cs.meta
+++ b/OdinSerializer/Core/Misc/SerializationAbortException.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 036472b47f895d47e688530771a7af8d
+guid: 44264e3a34d47ae974fbd43d60e2e694
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/SerializationConfig.cs.meta b/OdinSerializer/Core/Misc/SerializationConfig.cs.meta
index 64ac73c..155ab04 100644
--- a/OdinSerializer/Core/Misc/SerializationConfig.cs.meta
+++ b/OdinSerializer/Core/Misc/SerializationConfig.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f3dc83de801c8bd991f22153fe2c11ac
+guid: c2b4caf868e4fe4c5252406a0748242a
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/SerializationContext.cs.meta b/OdinSerializer/Core/Misc/SerializationContext.cs.meta
index 2feeb73..3163c30 100644
--- a/OdinSerializer/Core/Misc/SerializationContext.cs.meta
+++ b/OdinSerializer/Core/Misc/SerializationContext.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 790031df2f48f03fba0e7cfe2ea62e5c
+guid: ab938e9c9e431ee8e23dea2beecb6697
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/SerializationPolicies.cs.meta b/OdinSerializer/Core/Misc/SerializationPolicies.cs.meta
index b49d819..b6c46c9 100644
--- a/OdinSerializer/Core/Misc/SerializationPolicies.cs.meta
+++ b/OdinSerializer/Core/Misc/SerializationPolicies.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: e18df33c570c9ff4487ba08c1b60fb83
+guid: 012a9bfd44a557d59cb58791493c58bb
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/SerializationUtility.cs.meta b/OdinSerializer/Core/Misc/SerializationUtility.cs.meta
index bdf27eb..b7c5927 100644
--- a/OdinSerializer/Core/Misc/SerializationUtility.cs.meta
+++ b/OdinSerializer/Core/Misc/SerializationUtility.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ddacb09ae9f0e63d92c8672c3d644561
+guid: 5999bd7c8cda92e6d206e7d1db6defa9
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Misc/TwoWaySerializationBinder.cs.meta b/OdinSerializer/Core/Misc/TwoWaySerializationBinder.cs.meta
index 4c255b8..f60066c 100644
--- a/OdinSerializer/Core/Misc/TwoWaySerializationBinder.cs.meta
+++ b/OdinSerializer/Core/Misc/TwoWaySerializationBinder.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7d6d2ba662b5c40070795ef45899a10d
+guid: 5c4c80ef3ce9eb6175a68b27d9da7155
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers.meta b/OdinSerializer/Core/Serializers.meta
index cba8f15..7c6523b 100644
--- a/OdinSerializer/Core/Serializers.meta
+++ b/OdinSerializer/Core/Serializers.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 80d8daebbc89f644b8249d363fa78732
+guid: c620a85fc1738674cb025e3f2211ba67
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Core/Serializers/BooleanSerializer.cs.meta b/OdinSerializer/Core/Serializers/BooleanSerializer.cs.meta
index 2849e07..0a056f1 100644
--- a/OdinSerializer/Core/Serializers/BooleanSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/BooleanSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1df75d8838b4a8b40519bf0c0ec6450d
+guid: b5d02d9d9efcf1e70f42cabb042199b4
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/ByteSerializer.cs.meta b/OdinSerializer/Core/Serializers/ByteSerializer.cs.meta
index 50e8ab3..cc4809f 100644
--- a/OdinSerializer/Core/Serializers/ByteSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/ByteSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 91b29cde10622317d5b23bfc4b1915ff
+guid: 56dd455551bfd04bc6bbaf3fb30fe90d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/CharSerializer.cs.meta b/OdinSerializer/Core/Serializers/CharSerializer.cs.meta
index 5374245..736db46 100644
--- a/OdinSerializer/Core/Serializers/CharSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/CharSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a7f547ddde2429112c84c3b8d79c31ec
+guid: e6bf5bd1890429c5b418fce01bd5f168
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/ComplexTypeSerializer.cs b/OdinSerializer/Core/Serializers/ComplexTypeSerializer.cs
index 87ac6bf..b80d51b 100644
--- a/OdinSerializer/Core/Serializers/ComplexTypeSerializer.cs
+++ b/OdinSerializer/Core/Serializers/ComplexTypeSerializer.cs
@@ -61,7 +61,7 @@ public override T ReadValue(IDataReader reader)
if (context.Config.SerializationPolicy.AllowNonSerializableTypes == false && TypeOf_T.IsSerializable == false)
{
- context.Config.DebugContext.LogError("The type " + TypeOf_T.Name + " is not marked as serializable.");
+ context.Config.DebugContext.LogError("The type " + TypeOf_T.GetNiceFullName() + " is not marked as serializable.");
return default(T);
}
@@ -96,7 +96,7 @@ public override T ReadValue(IDataReader reader)
{
if (serializedType != null)
{
- context.Config.DebugContext.LogWarning("Expected complex struct value " + expectedType.Name + " but the serialized value is of type " + serializedType.Name + ".");
+ context.Config.DebugContext.LogWarning("Expected complex struct value " + expectedType.GetNiceFullName() + " but the serialized value is of type " + serializedType.GetNiceFullName() + ".");
if (serializedType.IsCastableTo(expectedType))
{
@@ -118,23 +118,23 @@ public override T ReadValue(IDataReader reader)
}
else if (AllowDeserializeInvalidDataForT || reader.Context.Config.AllowDeserializeInvalidData)
{
- context.Config.DebugContext.LogWarning("Can't cast serialized type " + serializedType.Name + " into expected type " + expectedType.Name + ". Attempting to deserialize with possibly invalid data. Value may be lost or corrupted for node '" + name + "'.");
+ context.Config.DebugContext.LogWarning("Can't cast serialized type " + serializedType.GetNiceFullName() + " into expected type " + expectedType.GetNiceFullName() + ". Attempting to deserialize with possibly invalid data. Value may be lost or corrupted for node '" + name + "'.");
return GetBaseFormatter(context.Config.SerializationPolicy).Deserialize(reader);
}
else
{
- context.Config.DebugContext.LogWarning("Can't cast serialized type " + serializedType.Name + " into expected type " + expectedType.Name + ". Value lost for node '" + name + "'.");
+ context.Config.DebugContext.LogWarning("Can't cast serialized type " + serializedType.GetNiceFullName() + " into expected type " + expectedType.GetNiceFullName() + ". Value lost for node '" + name + "'.");
return default(T);
}
}
else if (AllowDeserializeInvalidDataForT || reader.Context.Config.AllowDeserializeInvalidData)
{
- context.Config.DebugContext.LogWarning("Expected complex struct value " + expectedType.Name + " but the serialized type could not be resolved. Attempting to deserialize with possibly invalid data. Value may be lost or corrupted for node '" + name + "'.");
+ context.Config.DebugContext.LogWarning("Expected complex struct value " + expectedType.GetNiceFullName() + " but the serialized type could not be resolved. Attempting to deserialize with possibly invalid data. Value may be lost or corrupted for node '" + name + "'.");
return GetBaseFormatter(context.Config.SerializationPolicy).Deserialize(reader);
}
else
{
- context.Config.DebugContext.LogWarning("Expected complex struct value " + expectedType.Name + " but the serialized type could not be resolved. Value lost for node '" + name + "'.");
+ context.Config.DebugContext.LogWarning("Expected complex struct value " + expectedType.GetNiceFullName() + " but the serialized type could not be resolved. Value lost for node '" + name + "'.");
return default(T);
}
}
@@ -190,7 +190,7 @@ public override T ReadValue(IDataReader reader)
}
catch (InvalidCastException)
{
- context.Config.DebugContext.LogWarning("Can't cast external reference type " + value.GetType().Name + " into expected type " + TypeOf_T.Name + ". Value lost for node '" + name + "'.");
+ context.Config.DebugContext.LogWarning("Can't cast external reference type " + value.GetType().GetNiceFullName() + " into expected type " + TypeOf_T.GetNiceFullName() + ". Value lost for node '" + name + "'.");
return default(T);
}
}
@@ -208,7 +208,7 @@ public override T ReadValue(IDataReader reader)
}
catch (InvalidCastException)
{
- context.Config.DebugContext.LogWarning("Can't cast external reference type " + value.GetType().Name + " into expected type " + TypeOf_T.Name + ". Value lost for node '" + name + "'.");
+ context.Config.DebugContext.LogWarning("Can't cast external reference type " + value.GetType().GetNiceFullName() + " into expected type " + TypeOf_T.GetNiceFullName() + ". Value lost for node '" + name + "'.");
return default(T);
}
}
@@ -226,7 +226,7 @@ public override T ReadValue(IDataReader reader)
}
catch (InvalidCastException)
{
- context.Config.DebugContext.LogWarning("Can't cast external reference type " + value.GetType().Name + " into expected type " + TypeOf_T.Name + ". Value lost for node '" + name + "'.");
+ context.Config.DebugContext.LogWarning("Can't cast external reference type " + value.GetType().GetNiceFullName() + " into expected type " + TypeOf_T.GetNiceFullName() + ". Value lost for node '" + name + "'.");
return default(T);
}
}
@@ -244,7 +244,7 @@ public override T ReadValue(IDataReader reader)
}
catch (InvalidCastException)
{
- context.Config.DebugContext.LogWarning("Can't cast internal reference type " + value.GetType().Name + " into expected type " + TypeOf_T.Name + ". Value lost for node '" + name + "'.");
+ context.Config.DebugContext.LogWarning("Can't cast internal reference type " + value.GetType().GetNiceFullName() + " into expected type " + TypeOf_T.GetNiceFullName() + ". Value lost for node '" + name + "'.");
return default(T);
}
}
@@ -329,7 +329,7 @@ public override T ReadValue(IDataReader reader)
else if (!ComplexTypeIsAbstract && (AllowDeserializeInvalidDataForT || reader.Context.Config.AllowDeserializeInvalidData))
{
// We will try to deserialize an instance of T with the invalid data.
- context.Config.DebugContext.LogWarning("Can't cast serialized type " + serializedType.Name + " into expected type " + expectedType.Name + ". Attempting to deserialize with invalid data. Value may be lost or corrupted for node '" + name + "'.");
+ context.Config.DebugContext.LogWarning("Can't cast serialized type " + serializedType.GetNiceFullName() + " into expected type " + expectedType.GetNiceFullName() + ". Attempting to deserialize with invalid data. Value may be lost or corrupted for node '" + name + "'.");
result = GetBaseFormatter(context.Config.SerializationPolicy).Deserialize(reader);
success = true;
}
@@ -353,7 +353,7 @@ public override T ReadValue(IDataReader reader)
if (!success)
{
// We can't use this
- context.Config.DebugContext.LogWarning("Can't cast serialized type " + serializedType.Name + " into expected type " + expectedType.Name + ". Value lost for node '" + name + "'.");
+ context.Config.DebugContext.LogWarning("Can't cast serialized type " + serializedType.GetNiceFullName() + " into expected type " + expectedType.GetNiceFullName() + ". Value lost for node '" + name + "'.");
result = default(T);
}
}
@@ -541,7 +541,7 @@ public override void WriteValue(string name, T value, IDataWriter writer)
if (policy.AllowNonSerializableTypes == false && TypeOf_T.IsSerializable == false)
{
- context.Config.DebugContext.LogError("The type " + TypeOf_T.Name + " is not marked as serializable.");
+ context.Config.DebugContext.LogError("The type " + TypeOf_T.GetNiceFullName() + " is not marked as serializable.");
return;
}
diff --git a/OdinSerializer/Core/Serializers/ComplexTypeSerializer.cs.meta b/OdinSerializer/Core/Serializers/ComplexTypeSerializer.cs.meta
index 25a5f0c..da8a7e8 100644
--- a/OdinSerializer/Core/Serializers/ComplexTypeSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/ComplexTypeSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 90b1ca82dd47c3efbc40ca1ec7d82fff
+guid: 961bee2ea0d9de24188e7dc9cea4c2ce
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/DecimalSerializer.cs.meta b/OdinSerializer/Core/Serializers/DecimalSerializer.cs.meta
index 71bcaf0..4c45c42 100644
--- a/OdinSerializer/Core/Serializers/DecimalSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/DecimalSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ab2781c5ef4182ebf6074a008928cc37
+guid: dae352b1463fa361f99650e818ddc34d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/DoubleSerializer.cs.meta b/OdinSerializer/Core/Serializers/DoubleSerializer.cs.meta
index 3dd288f..e2a234f 100644
--- a/OdinSerializer/Core/Serializers/DoubleSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/DoubleSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c3e4c302b7a23f286abb3c447ff518d7
+guid: 71b93a0066a37a68b24971e15add3807
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/EnumSerializer.cs.meta b/OdinSerializer/Core/Serializers/EnumSerializer.cs.meta
index ba253c8..420b3a8 100644
--- a/OdinSerializer/Core/Serializers/EnumSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/EnumSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 5a2e6f2f3a5dc30292e17f015d1dc1be
+guid: f35b17f5be4f2051e10c6d33c6319e59
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/GuidSerializer.cs.meta b/OdinSerializer/Core/Serializers/GuidSerializer.cs.meta
index 802b3bf..a5b1a16 100644
--- a/OdinSerializer/Core/Serializers/GuidSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/GuidSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 493b49bdb7c0c7ce77008f5af4045ca6
+guid: 273ac54badc06bbe1786e04b972ec35e
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/Int16Serializer.cs.meta b/OdinSerializer/Core/Serializers/Int16Serializer.cs.meta
index 9105f91..cb0f3b5 100644
--- a/OdinSerializer/Core/Serializers/Int16Serializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/Int16Serializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 089bc0396928e4130c707d1ab35a58df
+guid: 0fb664366a0f8451ce9737414b306956
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/Int32Serializer.cs.meta b/OdinSerializer/Core/Serializers/Int32Serializer.cs.meta
index 915dfa9..1bd0083 100644
--- a/OdinSerializer/Core/Serializers/Int32Serializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/Int32Serializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d61ee66412addd908061f37d849e51e5
+guid: 9e325a00418a3e958d67821965b9236b
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/Int64Serializer.cs.meta b/OdinSerializer/Core/Serializers/Int64Serializer.cs.meta
index 3654152..4c334ab 100644
--- a/OdinSerializer/Core/Serializers/Int64Serializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/Int64Serializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d09895c10d5eb8dc42c8b6c8f6e1090d
+guid: 313af3f16a250c96dfd5e1b0cbfaf6aa
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/IntPtrSerializer.cs.meta b/OdinSerializer/Core/Serializers/IntPtrSerializer.cs.meta
index 8cb16c6..eebfa1a 100644
--- a/OdinSerializer/Core/Serializers/IntPtrSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/IntPtrSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 8240b00b09175ebd028c9424f465e0d1
+guid: 801192ca1691b6aa47291198ef55e1d1
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/SByteSerializer.cs.meta b/OdinSerializer/Core/Serializers/SByteSerializer.cs.meta
index 0fd5fa3..4ea2224 100644
--- a/OdinSerializer/Core/Serializers/SByteSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/SByteSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: de8abf95266704b6544305a33f31e6a0
+guid: 5d0efdc2b9033bfca5ddd79ee36e88fa
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/Serializer.cs.meta b/OdinSerializer/Core/Serializers/Serializer.cs.meta
index 73f4257..169f572 100644
--- a/OdinSerializer/Core/Serializers/Serializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/Serializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 81d66c05bdb5d91ec29f498ced7a899f
+guid: 213283c36dbd874d9d17428718f13af0
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/SingleSerializer.cs.meta b/OdinSerializer/Core/Serializers/SingleSerializer.cs.meta
index 6450f6f..13839b4 100644
--- a/OdinSerializer/Core/Serializers/SingleSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/SingleSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 2e485fc06f00b1e9a914d6cfebad9962
+guid: dc7011a8a5a6e8ea5ec52b27552643ac
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/StringSerializer.cs.meta b/OdinSerializer/Core/Serializers/StringSerializer.cs.meta
index e2723b4..9afbd48 100644
--- a/OdinSerializer/Core/Serializers/StringSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/StringSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 32a223dba371ed759b6f9039f778d68d
+guid: 245dd7eca5239ef0641f3180a5833846
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/UInt16Serializer.cs.meta b/OdinSerializer/Core/Serializers/UInt16Serializer.cs.meta
index ce1bae3..b416a3b 100644
--- a/OdinSerializer/Core/Serializers/UInt16Serializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/UInt16Serializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 221707ec5ce582b450571a47b212f680
+guid: e05f59f09e5c0c621c271d50eebb2836
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/UInt32Serializer.cs.meta b/OdinSerializer/Core/Serializers/UInt32Serializer.cs.meta
index f8146c5..f7ff722 100644
--- a/OdinSerializer/Core/Serializers/UInt32Serializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/UInt32Serializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 686c664e2273a23cc5b566a11a141785
+guid: bb3fd3e423d1ede967458ba39ac8aeed
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/UInt64Serializer.cs.meta b/OdinSerializer/Core/Serializers/UInt64Serializer.cs.meta
index 2ad84a0..5dc2993 100644
--- a/OdinSerializer/Core/Serializers/UInt64Serializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/UInt64Serializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 06f5ca23c12f85ba46d8f7e4d6439101
+guid: d33a7768e116860aea86e0f42eb528e9
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Core/Serializers/UIntPtrSerializer.cs.meta b/OdinSerializer/Core/Serializers/UIntPtrSerializer.cs.meta
index 70cb1db..2c0d8cd 100644
--- a/OdinSerializer/Core/Serializers/UIntPtrSerializer.cs.meta
+++ b/OdinSerializer/Core/Serializers/UIntPtrSerializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 67e07db02ab8d802ee7b6a9f0420b7e8
+guid: 99edd4cbff9ca83fc6d9a858220e186e
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/AOTSupportScanner.cs.meta b/OdinSerializer/Unity Integration/AOTSupportScanner.cs.meta
index 5c2f425..049e7f0 100644
--- a/OdinSerializer/Unity Integration/AOTSupportScanner.cs.meta
+++ b/OdinSerializer/Unity Integration/AOTSupportScanner.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1bdf439234dde19d838d59fe6de5fbb7
+guid: c8d2f558c4f427b6f1ec5a8a9b128746
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/AOTSupportUtilities.cs.meta b/OdinSerializer/Unity Integration/AOTSupportUtilities.cs.meta
index f14aba4..fec46a2 100644
--- a/OdinSerializer/Unity Integration/AOTSupportUtilities.cs.meta
+++ b/OdinSerializer/Unity Integration/AOTSupportUtilities.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7ea15e29f6f3a5e5b5fdb596da30ecd1
+guid: 3a3f807790d5e0d216a45974c6457927
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/DictionaryKeySupport.meta b/OdinSerializer/Unity Integration/DictionaryKeySupport.meta
index 718d036..9339d41 100644
--- a/OdinSerializer/Unity Integration/DictionaryKeySupport.meta
+++ b/OdinSerializer/Unity Integration/DictionaryKeySupport.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c136e29a0ccf0d74b904d92e36b17a72
+guid: 07829c19e6b89f84d9f5469fa695b5b0
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Unity Integration/DictionaryKeySupport/BaseDictionaryKeyPathProvider.cs.meta b/OdinSerializer/Unity Integration/DictionaryKeySupport/BaseDictionaryKeyPathProvider.cs.meta
index c04bc36..67fcbd5 100644
--- a/OdinSerializer/Unity Integration/DictionaryKeySupport/BaseDictionaryKeyPathProvider.cs.meta
+++ b/OdinSerializer/Unity Integration/DictionaryKeySupport/BaseDictionaryKeyPathProvider.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 521ad4411c3d031d69b51f63dbe0ccb2
+guid: be91985d929303aaa07d702164171450
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/DictionaryKeySupport/DictionaryKeyUtility.cs.meta b/OdinSerializer/Unity Integration/DictionaryKeySupport/DictionaryKeyUtility.cs.meta
index 799edf1..1dd7c13 100644
--- a/OdinSerializer/Unity Integration/DictionaryKeySupport/DictionaryKeyUtility.cs.meta
+++ b/OdinSerializer/Unity Integration/DictionaryKeySupport/DictionaryKeyUtility.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b4e03f89393be880fc9fffe86e83fc54
+guid: 09bac25a652e6e8493ec547f9580785e
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/DictionaryKeySupport/IDictionaryKeyPathProvider.cs.meta b/OdinSerializer/Unity Integration/DictionaryKeySupport/IDictionaryKeyPathProvider.cs.meta
index 750dec5..11a12e5 100644
--- a/OdinSerializer/Unity Integration/DictionaryKeySupport/IDictionaryKeyPathProvider.cs.meta
+++ b/OdinSerializer/Unity Integration/DictionaryKeySupport/IDictionaryKeyPathProvider.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 738f410a54781bb175a1d495dec8984e
+guid: 871791495b35c898bc011d5994bd3b5a
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/DictionaryKeySupport/RegisterDictionaryKeyPathProviderAttribute.cs.meta b/OdinSerializer/Unity Integration/DictionaryKeySupport/RegisterDictionaryKeyPathProviderAttribute.cs.meta
index 8d158a6..9d2c2fb 100644
--- a/OdinSerializer/Unity Integration/DictionaryKeySupport/RegisterDictionaryKeyPathProviderAttribute.cs.meta
+++ b/OdinSerializer/Unity Integration/DictionaryKeySupport/RegisterDictionaryKeyPathProviderAttribute.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ee600a5590716bc9febf641aae618c79
+guid: a3319ebb429af99e734f6b81ee8e25f1
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector2DictionaryKeyPathProvider.cs.meta b/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector2DictionaryKeyPathProvider.cs.meta
index 41fc88e..eb2af99 100644
--- a/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector2DictionaryKeyPathProvider.cs.meta
+++ b/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector2DictionaryKeyPathProvider.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 97eb63b967daae6c1ca67f3d59adcd15
+guid: 6857d261faa06d25f16731611a9d1cb8
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector3DictionaryKeyPathProvider.cs.meta b/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector3DictionaryKeyPathProvider.cs.meta
index 21e3dd9..bab45ab 100644
--- a/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector3DictionaryKeyPathProvider.cs.meta
+++ b/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector3DictionaryKeyPathProvider.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 8df24896b6522ebddf1f31fff6617cf5
+guid: 93e6d81c30682515c172b7e0d2feaf55
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector4DictionaryKeyPathProvider.cs.meta b/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector4DictionaryKeyPathProvider.cs.meta
index 6c7266d..77df6cf 100644
--- a/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector4DictionaryKeyPathProvider.cs.meta
+++ b/OdinSerializer/Unity Integration/DictionaryKeySupport/Vector4DictionaryKeyPathProvider.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f900a53dca584ac0c650abfab5814b2f
+guid: c7320b56c6554472b052779c582a881d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters.meta b/OdinSerializer/Unity Integration/Formatters.meta
index ac646cf..74a1765 100644
--- a/OdinSerializer/Unity Integration/Formatters.meta
+++ b/OdinSerializer/Unity Integration/Formatters.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 92764afbc7f315748b046b2ce57e67f8
+guid: 3cbe2125d39cac642a7a80773f2dd272
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Unity Integration/Formatters/AnimationCurveFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/AnimationCurveFormatter.cs.meta
index 863ce6f..2c1a57a 100644
--- a/OdinSerializer/Unity Integration/Formatters/AnimationCurveFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/AnimationCurveFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 5a3e19486d72b0429eb53836e250eab9
+guid: 92e89808c1417ce6bb730a9d0288bf45
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/BoundsFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/BoundsFormatter.cs.meta
index 1186622..a1ec0a7 100644
--- a/OdinSerializer/Unity Integration/Formatters/BoundsFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/BoundsFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a7dfbc58ae080ccc26462c88e561df48
+guid: a49f68546b9e9eb48c59af276220de76
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/Color32Formatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/Color32Formatter.cs.meta
index 368b7b5..7b00466 100644
--- a/OdinSerializer/Unity Integration/Formatters/Color32Formatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/Color32Formatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 23ead6f462aa5717e690e8a47c20f0e1
+guid: ba65bb8ab90fe55d615eb0c477841ecc
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/ColorBlockFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/ColorBlockFormatter.cs.meta
index 0c4d7c0..b5b555f 100644
--- a/OdinSerializer/Unity Integration/Formatters/ColorBlockFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/ColorBlockFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: e9ee9d10f347645efb0b92a4d6b7c1b1
+guid: 2ef0b3eb852e13a4b1825488fdff68a7
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/ColorFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/ColorFormatter.cs.meta
index 31112d6..a8c74f6 100644
--- a/OdinSerializer/Unity Integration/Formatters/ColorFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/ColorFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ed2982823d48b895023cd33a6df9e18e
+guid: c27ef99825f2ffb385ccfe78a2cf768e
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/CoroutineFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/CoroutineFormatter.cs.meta
index b056d40..8f0d216 100644
--- a/OdinSerializer/Unity Integration/Formatters/CoroutineFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/CoroutineFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 36cf5266d5eb1c2065eb1b592b55dc6e
+guid: b89f226b593fc401b9a68d73d6315267
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/GradientAlphaKeyFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/GradientAlphaKeyFormatter.cs.meta
index 522599e..bc05def 100644
--- a/OdinSerializer/Unity Integration/Formatters/GradientAlphaKeyFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/GradientAlphaKeyFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 29865edb13466ab19778185b9dd88f43
+guid: b43e76a31931992aeea48af761367626
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/GradientColorKeyFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/GradientColorKeyFormatter.cs.meta
index e48ce89..da0cfc5 100644
--- a/OdinSerializer/Unity Integration/Formatters/GradientColorKeyFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/GradientColorKeyFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 03475233501b7f4bd3f68688d73a6323
+guid: c14c805b65279eff74f332c5b8c1efc1
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/GradientFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/GradientFormatter.cs.meta
index 230bfb9..fcecce6 100644
--- a/OdinSerializer/Unity Integration/Formatters/GradientFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/GradientFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c72810826f320423299222b3d953d998
+guid: 0d56153f638e46b2f4a03890ddfeceaf
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/KeyframeFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/KeyframeFormatter.cs.meta
index c68404c..9a51250 100644
--- a/OdinSerializer/Unity Integration/Formatters/KeyframeFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/KeyframeFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 533f5fcde217a53011c64d30a1658595
+guid: fc4068534500d7b82609335f6a103dfa
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/LayerMaskFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/LayerMaskFormatter.cs.meta
index 2dcbcda..b51a494 100644
--- a/OdinSerializer/Unity Integration/Formatters/LayerMaskFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/LayerMaskFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 10610392d0bbdf32ae3ddc0ef236cd24
+guid: 6289ae6796ee01cafffb237dc3ccbb59
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/QuaternionFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/QuaternionFormatter.cs.meta
index 66bd734..587037d 100644
--- a/OdinSerializer/Unity Integration/Formatters/QuaternionFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/QuaternionFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 3e2d7408f73a00056d07f3c50644b63d
+guid: 64ca84482f289b29f497d7840d1ac9ce
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/RectFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/RectFormatter.cs.meta
index 8e308f7..8d8fe20 100644
--- a/OdinSerializer/Unity Integration/Formatters/RectFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/RectFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 3b9851f3e1f0960c883e5d95371fb2b1
+guid: a3d7e5f7f34ff385466c6320431f5b8e
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/UnityEventFormatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/UnityEventFormatter.cs.meta
index 86719ce..204b32f 100644
--- a/OdinSerializer/Unity Integration/Formatters/UnityEventFormatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/UnityEventFormatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 756f0beab61b61ab4245a08c573bd4ac
+guid: f02c0e23359f1191f074944af759b11b
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/Vector2Formatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/Vector2Formatter.cs.meta
index 6e898d5..b5d1c6b 100644
--- a/OdinSerializer/Unity Integration/Formatters/Vector2Formatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/Vector2Formatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 2751166377cf19ae8e64904f894602b4
+guid: 2357d32337de5648b46a5224ce3efb53
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/Vector3Formatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/Vector3Formatter.cs.meta
index 716117b..d45f537 100644
--- a/OdinSerializer/Unity Integration/Formatters/Vector3Formatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/Vector3Formatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 5968260c70ae0ee68e7c9f1cf97344ab
+guid: 148f505e0c3eef14cee3264818c98b22
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/Formatters/Vector4Formatter.cs.meta b/OdinSerializer/Unity Integration/Formatters/Vector4Formatter.cs.meta
index faeb8d2..b70d94a 100644
--- a/OdinSerializer/Unity Integration/Formatters/Vector4Formatter.cs.meta
+++ b/OdinSerializer/Unity Integration/Formatters/Vector4Formatter.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c0941f1db3a55d90a8cb6618d2d038bb
+guid: 4208f4a794998daa97a072c541fa8f32
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/OdinPrefabSerializationEditorUtility.cs.meta b/OdinSerializer/Unity Integration/OdinPrefabSerializationEditorUtility.cs.meta
index 3378a3f..2feee74 100644
--- a/OdinSerializer/Unity Integration/OdinPrefabSerializationEditorUtility.cs.meta
+++ b/OdinSerializer/Unity Integration/OdinPrefabSerializationEditorUtility.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7c12fd3cb0142c67cc5c88adc68f8432
+guid: 9acd4e890b6b35c30c3fd61265331cee
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects.meta b/OdinSerializer/Unity Integration/SerializedUnityObjects.meta
index d3c8a75..f595cce 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects.meta
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 38ed9ba8c7f81484e9111159edacdff4
+guid: fc4bddf9bb38f7a43b58b0928fa04fe5
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects/IOverridesSerializationFormat.cs.meta b/OdinSerializer/Unity Integration/SerializedUnityObjects/IOverridesSerializationFormat.cs.meta
index 47796c4..03e0a3a 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects/IOverridesSerializationFormat.cs.meta
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects/IOverridesSerializationFormat.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c2e47ba23f2a951feb7d79dd6533bf39
+guid: afc953f9e87a3f9cd41c03fcc2c63f63
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects/IOverridesSerializationPolicy.cs.meta b/OdinSerializer/Unity Integration/SerializedUnityObjects/IOverridesSerializationPolicy.cs.meta
index 3a1b30f..974b2e9 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects/IOverridesSerializationPolicy.cs.meta
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects/IOverridesSerializationPolicy.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a32da3e9617b74fed66da4e64734552a
+guid: 94fffcb1ec3682964748aa2a85b8555b
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects/ISupportsPrefabSerialization.cs.meta b/OdinSerializer/Unity Integration/SerializedUnityObjects/ISupportsPrefabSerialization.cs.meta
index bcaf502..a1ddd2c 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects/ISupportsPrefabSerialization.cs.meta
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects/ISupportsPrefabSerialization.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 9a707d2c6c3e26d8105b6570cb87d8cd
+guid: 178d516eb71b504a00fd9429867d2e73
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializationData.cs b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializationData.cs
index 63240c2..80ba036 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializationData.cs
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializationData.cs
@@ -66,6 +66,7 @@ public struct SerializationData
/// Whether the object contains any serialized data.
///
[Obsolete("Use ContainsData instead")]
+ [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public bool HasEditorData
{
get
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializationData.cs.meta b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializationData.cs.meta
index 44fe59a..ae20261 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializationData.cs.meta
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializationData.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 020007185fadbc57bfacb3020035265c
+guid: 0fa1876ead256ac7538983bc70dea1d5
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedBehaviour.cs.meta b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedBehaviour.cs.meta
index 2b0b3c0..9d3a936 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedBehaviour.cs.meta
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedBehaviour.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4c08ea33a4c4833c3550f0649828726e
+guid: 2968f44f461aa3a0e7ce2ad7c12b1ae1
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedComponent.cs.meta b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedComponent.cs.meta
index dd5f0a6..ead96c6 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedComponent.cs.meta
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedComponent.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: cfbc76c3bec81a3f78e46c5e1b2f712d
+guid: bfdb7184099fce496154075e2094ba30
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedMonoBehaviour.cs.meta b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedMonoBehaviour.cs.meta
index 36db0a2..a513818 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedMonoBehaviour.cs.meta
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedMonoBehaviour.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 8f56de582fedd847a6939c7a3c3b47d0
+guid: e7b777b001cb1f1d823d5402efc8e19f
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedScriptableObject.cs.meta b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedScriptableObject.cs.meta
index 05ecb39..1c99799 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedScriptableObject.cs.meta
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedScriptableObject.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: db93174568a484c31ee1ec8a0678e9ce
+guid: 67e3a85def6ed5e29f9588fdfa2141cb
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedStateMachineBehaviour.cs.meta b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedStateMachineBehaviour.cs.meta
index 496899e..a8a7c4e 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedStateMachineBehaviour.cs.meta
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedStateMachineBehaviour.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c43594336208689053311082a8fe12f0
+guid: 5f0a1afce7b0f21e48b5745d2b5f6c24
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedUnityObject.cs.meta b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedUnityObject.cs.meta
index b173cb9..3e136d4 100644
--- a/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedUnityObject.cs.meta
+++ b/OdinSerializer/Unity Integration/SerializedUnityObjects/SerializedUnityObject.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 2016753dd624a18ebdb005d587a90db4
+guid: e8449c02db374b5a18edfff47ee4d7db
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/UnityReferenceResolver.cs.meta b/OdinSerializer/Unity Integration/UnityReferenceResolver.cs.meta
index d69369f..d1fa6fc 100644
--- a/OdinSerializer/Unity Integration/UnityReferenceResolver.cs.meta
+++ b/OdinSerializer/Unity Integration/UnityReferenceResolver.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 9f7f226e3662217133440cd154adceb8
+guid: b4ffa07ccd4937532874e2c6f26fa6b2
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/UnitySerializationInitializer.cs.meta b/OdinSerializer/Unity Integration/UnitySerializationInitializer.cs.meta
index 5dd0386..86ffc6e 100644
--- a/OdinSerializer/Unity Integration/UnitySerializationInitializer.cs.meta
+++ b/OdinSerializer/Unity Integration/UnitySerializationInitializer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d8bdf7d1cf68bfdf24b8b022fcd8e211
+guid: d5e45197853bb72d1571d2c1be6a61ca
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Unity Integration/UnitySerializationUtility.cs b/OdinSerializer/Unity Integration/UnitySerializationUtility.cs
index 8b4c169..266a447 100644
--- a/OdinSerializer/Unity Integration/UnitySerializationUtility.cs
+++ b/OdinSerializer/Unity Integration/UnitySerializationUtility.cs
@@ -54,7 +54,46 @@ public static class UnitySerializationUtility
private static readonly Assembly HashSet_Assembly = typeof(HashSet<>).Assembly;
private static readonly Assembly LinkedList_Assembly = typeof(LinkedList<>).Assembly;
+
#if UNITY_EDITOR
+ private static bool isDoingDomainReload;
+
+ [UnityEditor.InitializeOnLoadMethod]
+ private static void SubscribeToDomainReloadEvents()
+ {
+ var AssemblyReloadEvents_Type = TwoWaySerializationBinder.Default.BindToType("UnityEditor.AssemblyReloadEvents");
+
+ if (AssemblyReloadEvents_Type == null) return;
+
+ var AssemblyReloadEvents_beforeAssemblyReload_Event = AssemblyReloadEvents_Type.GetEvent("beforeAssemblyReload");
+ var AssemblyReloadEvents_afterAssemblyReload_Event = AssemblyReloadEvents_Type.GetEvent("afterAssemblyReload");
+ var AssemblyReloadEvents_AssemblyReloadCallback_Type = AssemblyReloadEvents_Type.GetNestedType("AssemblyReloadCallback");
+
+ if (AssemblyReloadEvents_beforeAssemblyReload_Event == null || AssemblyReloadEvents_afterAssemblyReload_Event == null || AssemblyReloadEvents_AssemblyReloadCallback_Type == null)
+ {
+ return;
+ }
+
+ var UnitySerializationUtility_OnBeforeAssemblyReload_Method = typeof(UnitySerializationUtility).GetMethod("OnBeforeAssemblyReload", Flags.StaticAnyVisibility);
+ var UnitySerializationUtility_OnAfterAssemblyReload_Method = typeof(UnitySerializationUtility).GetMethod("OnAfterAssemblyReload", Flags.StaticAnyVisibility);
+
+ var onBeforeDelegate = Delegate.CreateDelegate(AssemblyReloadEvents_AssemblyReloadCallback_Type, UnitySerializationUtility_OnBeforeAssemblyReload_Method);
+ var onAfterDelegate = Delegate.CreateDelegate(AssemblyReloadEvents_AssemblyReloadCallback_Type, UnitySerializationUtility_OnAfterAssemblyReload_Method);
+
+ AssemblyReloadEvents_beforeAssemblyReload_Event.AddEventHandler(null, onBeforeDelegate);
+ AssemblyReloadEvents_afterAssemblyReload_Event.AddEventHandler(null, onAfterDelegate);
+ }
+
+ private static void OnBeforeAssemblyReload()
+ {
+ isDoingDomainReload = true;
+ }
+
+ private static void OnAfterAssemblyReload()
+ {
+ isDoingDomainReload = false;
+ }
+
///
/// From the new scriptable build pipeline package
///
@@ -611,7 +650,7 @@ public static void SerializeUnityObject(UnityEngine.Object unityObject, ref Seri
// that supports special prefab serialization, we enter a special bail-out case.
//
- if (!pretendIsPlayer)
+ if (!pretendIsPlayer && !isDoingDomainReload) // Recently some Unity versions started breaking if the prefab API was accessed during a domain reload, so no prefab stuff for domain reloads!
{
UnityEngine.Object prefab = null;
SerializationData prefabData = default(SerializationData);
diff --git a/OdinSerializer/Unity Integration/UnitySerializationUtility.cs.meta b/OdinSerializer/Unity Integration/UnitySerializationUtility.cs.meta
index 7332f59..51e5d2e 100644
--- a/OdinSerializer/Unity Integration/UnitySerializationUtility.cs.meta
+++ b/OdinSerializer/Unity Integration/UnitySerializationUtility.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b59749adc3e43dec26d47568253aabc9
+guid: 3dfe10677ce8dba368cc0b392f722b31
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Extensions.meta b/OdinSerializer/Utilities/Extensions.meta
index c150ebf..cf5b2cf 100644
--- a/OdinSerializer/Utilities/Extensions.meta
+++ b/OdinSerializer/Utilities/Extensions.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 6e8a03a62a1370243846bdc9b5363567
+guid: 0e764ce7bf888ec45ae4dffb928a6b80
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Utilities/Extensions/FieldInfoExtensions.cs.meta b/OdinSerializer/Utilities/Extensions/FieldInfoExtensions.cs.meta
index 9bb6377..1f61baa 100644
--- a/OdinSerializer/Utilities/Extensions/FieldInfoExtensions.cs.meta
+++ b/OdinSerializer/Utilities/Extensions/FieldInfoExtensions.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 6d2e24984b7c8060a0da2b37c65c753a
+guid: 624e32ee019951692565398ca84793d1
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Extensions/GarbageFreeIterators.cs.meta b/OdinSerializer/Utilities/Extensions/GarbageFreeIterators.cs.meta
index 91bf550..a613b6a 100644
--- a/OdinSerializer/Utilities/Extensions/GarbageFreeIterators.cs.meta
+++ b/OdinSerializer/Utilities/Extensions/GarbageFreeIterators.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1b6afd96874a5a86c9be8e341f699056
+guid: 4c0ce785f0da7bac7860c6423d569bb0
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Extensions/LinqExtensions.cs.meta b/OdinSerializer/Utilities/Extensions/LinqExtensions.cs.meta
index 9bb7bae..e7f8b3b 100644
--- a/OdinSerializer/Utilities/Extensions/LinqExtensions.cs.meta
+++ b/OdinSerializer/Utilities/Extensions/LinqExtensions.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 50fb96578fc1f47311bc26d5750946f3
+guid: 7ba5070a912fbed113802dad67f92842
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Extensions/MemberInfoExtensions.cs.meta b/OdinSerializer/Utilities/Extensions/MemberInfoExtensions.cs.meta
index 6664673..a6d92aa 100644
--- a/OdinSerializer/Utilities/Extensions/MemberInfoExtensions.cs.meta
+++ b/OdinSerializer/Utilities/Extensions/MemberInfoExtensions.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 8bdc37bcc55e03e453185428a97a9db1
+guid: 7cb509867be75b6cd3c5de341ba2a603
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Extensions/MethodInfoExtensions.cs.meta b/OdinSerializer/Utilities/Extensions/MethodInfoExtensions.cs.meta
index 829b366..e369d04 100644
--- a/OdinSerializer/Utilities/Extensions/MethodInfoExtensions.cs.meta
+++ b/OdinSerializer/Utilities/Extensions/MethodInfoExtensions.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 23de4606ca6f3cda4ff4283e60ce3eba
+guid: 573b7a5063a1a4e65f677fbf062d9022
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Extensions/Operator.cs.meta b/OdinSerializer/Utilities/Extensions/Operator.cs.meta
index cb03df5..043b7be 100644
--- a/OdinSerializer/Utilities/Extensions/Operator.cs.meta
+++ b/OdinSerializer/Utilities/Extensions/Operator.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4bc0c8665cf5e3d247a32a30e729197e
+guid: 91f3981b5b3bb122d9e8fa4ad98b75f4
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Extensions/PathUtilities.cs.meta b/OdinSerializer/Utilities/Extensions/PathUtilities.cs.meta
index 062a13b..655fee2 100644
--- a/OdinSerializer/Utilities/Extensions/PathUtilities.cs.meta
+++ b/OdinSerializer/Utilities/Extensions/PathUtilities.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c34dd92b3f49dae8e23f0c7b90ce3150
+guid: 0c24e3b62d4eeb25f71fb4a6ba1e9dab
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Extensions/PropertyInfoExtensions.cs.meta b/OdinSerializer/Utilities/Extensions/PropertyInfoExtensions.cs.meta
index 5e11269..b96a4c3 100644
--- a/OdinSerializer/Utilities/Extensions/PropertyInfoExtensions.cs.meta
+++ b/OdinSerializer/Utilities/Extensions/PropertyInfoExtensions.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 31f51058e31d524744d1e8564ae2a097
+guid: 8dfff584aaa9b9a49cfec1c1bb758200
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Extensions/StringExtensions.cs.meta b/OdinSerializer/Utilities/Extensions/StringExtensions.cs.meta
index de214e7..d5462c5 100644
--- a/OdinSerializer/Utilities/Extensions/StringExtensions.cs.meta
+++ b/OdinSerializer/Utilities/Extensions/StringExtensions.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a75356858c23378f7887e4dcf0ad43d0
+guid: 7af3c8bc9ce6399095ff815fbe38bf09
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Extensions/TypeExtensions.cs b/OdinSerializer/Utilities/Extensions/TypeExtensions.cs
index efc3abe..96bf254 100644
--- a/OdinSerializer/Utilities/Extensions/TypeExtensions.cs
+++ b/OdinSerializer/Utilities/Extensions/TypeExtensions.cs
@@ -39,6 +39,8 @@ public static class TypeExtensions
private static readonly Dictionary GenericConstraintsSatisfactionInferredParameters = new Dictionary();
private static readonly Dictionary GenericConstraintsSatisfactionResolvedMap = new Dictionary();
private static readonly HashSet GenericConstraintsSatisfactionProcessedParams = new HashSet();
+ private static readonly HashSet GenericConstraintsSatisfactionTypesToCheck = new HashSet();
+ private static readonly List GenericConstraintsSatisfactionTypesToCheck_ToAdd = new List();
private static readonly Type GenericListInterface = typeof(IList<>);
private static readonly Type GenericCollectionInterface = typeof(ICollection<>);
@@ -488,7 +490,7 @@ public static MethodInfo GetCastMethod(this Type from, Type to, bool requireImpl
foreach (var method in fromMethods)
{
- if ((method.Name == "op_Implicit" || (requireImplicitCast == false && method.Name == "op_Explicit")) && to.IsAssignableFrom(method.ReturnType))
+ if ((method.Name == "op_Implicit" || (requireImplicitCast == false && method.Name == "op_Explicit")) && method.GetParameters()[0].ParameterType.IsAssignableFrom(from) && to.IsAssignableFrom(method.ReturnType))
{
return method;
}
@@ -498,7 +500,7 @@ public static MethodInfo GetCastMethod(this Type from, Type to, bool requireImpl
foreach (var method in toMethods)
{
- if ((method.Name == "op_Implicit" || (requireImplicitCast == false && method.Name == "op_Explicit")) && method.GetParameters()[0].ParameterType.IsAssignableFrom(from))
+ if ((method.Name == "op_Implicit" || (requireImplicitCast == false && method.Name == "op_Explicit")) && method.GetParameters()[0].ParameterType.IsAssignableFrom(from) && to.IsAssignableFrom(method.ReturnType))
{
return method;
}
@@ -1609,6 +1611,9 @@ public static void SetMemberValue(this MemberInfo member, object obj, object val
/// The genericTypeDefinition parameter must be a generic type definition.
public static bool TryInferGenericParameters(this Type genericTypeDefinition, out Type[] inferredParams, params Type[] knownParameters)
{
+ // NOTE: When modifying this method, also remember to modify Sirenix.Utilities.TypeExtensions.TryInferGenericParameters
+ // and GenericParameterInferenceTypeMatcher.TryInferGenericParameters!
+
if (genericTypeDefinition == null)
{
throw new ArgumentNullException("genericTypeDefinition");
@@ -1629,6 +1634,17 @@ public static bool TryInferGenericParameters(this Type genericTypeDefinition, ou
Dictionary matches = GenericConstraintsSatisfactionInferredParameters;
matches.Clear();
+ HashSet typesToCheck = GenericConstraintsSatisfactionTypesToCheck;
+ typesToCheck.Clear();
+
+ List typesToCheck_ToAdd = GenericConstraintsSatisfactionTypesToCheck_ToAdd;
+ typesToCheck_ToAdd.Clear();
+
+ for (int i = 0; i < knownParameters.Length; i++)
+ {
+ typesToCheck.Add(knownParameters[i]);
+ }
+
Type[] definitions = genericTypeDefinition.GetGenericArguments();
if (!genericTypeDefinition.IsGenericTypeDefinition)
@@ -1677,15 +1693,15 @@ public static bool TryInferGenericParameters(this Type genericTypeDefinition, ou
return true;
}
- foreach (var type in definitions)
+ foreach (var typeArg in definitions)
{
- if (matches.ContainsKey(type)) continue;
+ //if (matches.ContainsKey(type)) continue;
- var constraints = type.GetGenericParameterConstraints();
+ var constraints = typeArg.GetGenericParameterConstraints();
foreach (var constraint in constraints)
{
- foreach (var parameter in knownParameters)
+ foreach (var parameter in typesToCheck)
{
if (!constraint.IsGenericType)
{
@@ -1714,16 +1730,25 @@ public static bool TryInferGenericParameters(this Type genericTypeDefinition, ou
continue;
}
- matches[type] = parameter;
+ matches[typeArg] = parameter;
+ typesToCheck_ToAdd.Add(parameter);
for (int i = 0; i < constraintParams.Length; i++)
{
if (constraintParams[i].IsGenericParameter)
{
matches[constraintParams[i]] = paramParams[i];
+ typesToCheck_ToAdd.Add(paramParams[i]);
}
}
}
+
+ foreach (var type in typesToCheck_ToAdd)
+ {
+ typesToCheck.Add(type);
+ }
+
+ typesToCheck_ToAdd.Clear();
}
}
diff --git a/OdinSerializer/Utilities/Extensions/TypeExtensions.cs.meta b/OdinSerializer/Utilities/Extensions/TypeExtensions.cs.meta
index 3002cb0..763a043 100644
--- a/OdinSerializer/Utilities/Extensions/TypeExtensions.cs.meta
+++ b/OdinSerializer/Utilities/Extensions/TypeExtensions.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c8f7b2b2e6bac43c5f6682b333221872
+guid: a21975075f424c04dca6e0ecab065c62
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Extensions/UnityExtensions.cs.meta b/OdinSerializer/Utilities/Extensions/UnityExtensions.cs.meta
index 74aac47..0f4f469 100644
--- a/OdinSerializer/Utilities/Extensions/UnityExtensions.cs.meta
+++ b/OdinSerializer/Utilities/Extensions/UnityExtensions.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a8d34d9c5d129d9d72d3085b84cc44e7
+guid: cd67121a0ada2ea3383d995ab88f776d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Misc.meta b/OdinSerializer/Utilities/Misc.meta
index 34faf51..a6bc04e 100644
--- a/OdinSerializer/Utilities/Misc.meta
+++ b/OdinSerializer/Utilities/Misc.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1992b93af9249784895829a323130c87
+guid: 8464808ade87a1748ab1b30e4a87057d
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/OdinSerializer/Utilities/Misc/AssemblyImportSettingsUtilities.cs b/OdinSerializer/Utilities/Misc/AssemblyImportSettingsUtilities.cs
index 75c2e72..7b531ed 100644
--- a/OdinSerializer/Utilities/Misc/AssemblyImportSettingsUtilities.cs
+++ b/OdinSerializer/Utilities/Misc/AssemblyImportSettingsUtilities.cs
@@ -83,7 +83,7 @@ static AssemblyImportSettingsUtilities()
{
// Different methods required for getting the current scripting backend from different versions of the Unity Editor.
getPropertyIntMethod = typeof(PlayerSettings).GetMethod("GetPropertyInt", Flags.StaticPublic, null, new Type[] { typeof(string), typeof(BuildTargetGroup) }, null);
- getScriptingBackendMethod = typeof(PlayerSettings).GetMethod("GetScriptingBackend", Flags.StaticPublic);
+ getScriptingBackendMethod = typeof(PlayerSettings).GetMethod("GetScriptingBackend", Flags.StaticPublic, null, new Type[] { typeof(BuildTargetGroup) }, null);
// Diffferent methods required for getting the current api level from different versions of the Unity Editor.
getApiCompatibilityLevelMethod = typeof(PlayerSettings).GetMethod("GetApiCompatibilityLevel", Flags.StaticPublic, null, new Type[] { typeof(BuildTargetGroup) }, null);
diff --git a/OdinSerializer/Utilities/Misc/AssemblyImportSettingsUtilities.cs.meta b/OdinSerializer/Utilities/Misc/AssemblyImportSettingsUtilities.cs.meta
index 8e7a29d..c051787 100644
--- a/OdinSerializer/Utilities/Misc/AssemblyImportSettingsUtilities.cs.meta
+++ b/OdinSerializer/Utilities/Misc/AssemblyImportSettingsUtilities.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 4be43f614c5eed5ecb3bc5d9d599637f
+guid: 790e81e366cc661cd4d7a4f9a7db24a4
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Misc/Cache.cs.meta b/OdinSerializer/Utilities/Misc/Cache.cs.meta
index 40eba45..f0fe0bd 100644
--- a/OdinSerializer/Utilities/Misc/Cache.cs.meta
+++ b/OdinSerializer/Utilities/Misc/Cache.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b079fe042860c42d87f8cb48ff1ff73b
+guid: 1139509772fbddf47a3e81d1795a408c
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Misc/DoubleLookupDictionary.cs.meta b/OdinSerializer/Utilities/Misc/DoubleLookupDictionary.cs.meta
index 03ecf57..a921fe4 100644
--- a/OdinSerializer/Utilities/Misc/DoubleLookupDictionary.cs.meta
+++ b/OdinSerializer/Utilities/Misc/DoubleLookupDictionary.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 66db40c0df342665dc8c74644aa26237
+guid: 49ac35a4ed5d21f0e00727d3e3824bd3
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/OdinSerializer/Utilities/Misc/EmitUtilities.cs b/OdinSerializer/Utilities/Misc/EmitUtilities.cs
index 114d5c1..92c8d3a 100644
--- a/OdinSerializer/Utilities/Misc/EmitUtilities.cs
+++ b/OdinSerializer/Utilities/Misc/EmitUtilities.cs
@@ -90,6 +90,20 @@ public static bool CanEmit
}
}
+#if UNITY_EDITOR
+ private static Assembly EditorAssembly = typeof(UnityEditor.Editor).Assembly;
+#endif
+ private static Assembly EngineAssembly = typeof(UnityEngine.Object).Assembly;
+
+ private static bool EmitIsIllegalForMember(MemberInfo member)
+ {
+#if UNITY_EDITOR
+ return member.DeclaringType != null && (member.DeclaringType.Assembly == EditorAssembly || member.DeclaringType.Assembly == EngineAssembly);
+#else
+ return member.DeclaringType != null && member.DeclaringType.Assembly == EngineAssembly;
+#endif
+ }
+
///
/// Creates a delegate which gets the value of a field. If emitting is not supported on the current platform, the delegate will use reflection to get the value.
///
@@ -124,6 +138,14 @@ public static Func CreateStaticFieldGetter(FieldInfo field
return (FieldType)fieldInfo.GetValue(null);
};
#else
+ if (EmitIsIllegalForMember(fieldInfo))
+ {
+ return () =>
+ {
+ return (FieldType)fieldInfo.GetValue(null);
+ };
+ }
+
string methodName = fieldInfo.ReflectedType.FullName + ".get_" + fieldInfo.Name;
DynamicMethod getterMethod = new DynamicMethod(methodName, typeof(FieldType), new Type[0], true);
@@ -163,6 +185,14 @@ public static Func