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 @@
+