diff --git a/LibreMetaverse.Tests/LibreMetaverse.Tests.csproj b/LibreMetaverse.Tests/LibreMetaverse.Tests.csproj index 1db47c37..27fa8e00 100644 --- a/LibreMetaverse.Tests/LibreMetaverse.Tests.csproj +++ b/LibreMetaverse.Tests/LibreMetaverse.Tests.csproj @@ -16,6 +16,7 @@ true false AnyCPU;x64;x86 + true True diff --git a/LibreMetaverse/Inventory.cs b/LibreMetaverse/Inventory.cs index 8f73e274..494af658 100644 --- a/LibreMetaverse/Inventory.cs +++ b/LibreMetaverse/Inventory.cs @@ -346,13 +346,12 @@ namespace OpenMetaverse { using (Stream stream = File.Open(filename, FileMode.Create)) { - BinaryFormatter bformatter = new BinaryFormatter(); lock (Items) { Logger.Log("Caching " + Items.Count.ToString() + " inventory items to " + filename, Helpers.LogLevel.Info); foreach (KeyValuePair kvp in Items) { - bformatter.Serialize(stream, kvp.Value); + ZeroFormatter.ZeroFormatterSerializer.Serialize(stream, kvp.Value); } } } @@ -384,7 +383,7 @@ namespace OpenMetaverse while (stream.Position < stream.Length) { - OpenMetaverse.InventoryNode node = (InventoryNode)bformatter.Deserialize(stream); + var node = ZeroFormatter.ZeroFormatterSerializer.Deserialize(stream); nodes.Add(node); item_count++; } diff --git a/LibreMetaverse/InventoryNode.cs b/LibreMetaverse/InventoryNode.cs index 9b0bc081..3298974e 100644 --- a/LibreMetaverse/InventoryNode.cs +++ b/LibreMetaverse/InventoryNode.cs @@ -1,5 +1,6 @@ /* * Copyright (c) 2006-2016, openmetaverse.co + * Copyright (c) 2021, Sjofn LLC. * All rights reserved. * * - Redistribution and use in source and binary forms, with or without @@ -26,18 +27,24 @@ using System; using System.Runtime.Serialization; +using ZeroFormatter; namespace OpenMetaverse { - [Serializable] - public class InventoryNode : ISerializable + [ZeroFormattable] + public class InventoryNode { + [Index(0)] private InventoryBase data; + [Index(1)] private InventoryNode parent; + [Index(3)] private UUID parentID; //used for de-seralization + [Index(4)] private InventoryNodeDictionary nodes; + [Index(5)] private bool needsUpdate = true; - [NonSerialized] + [IgnoreFormat] private object tag; /// diff --git a/LibreMetaverse/LibreMetaverse.csproj b/LibreMetaverse/LibreMetaverse.csproj index 23841d5d..97f78952 100644 --- a/LibreMetaverse/LibreMetaverse.csproj +++ b/LibreMetaverse/LibreMetaverse.csproj @@ -131,6 +131,7 @@ +