Run the following test code, it will throw "Object reference not set to an instance of an object" in KeyValuePairComparer<TKey, TValue> class:
private static void TestByteArray()
{
using (IStorageEngine engine = STSdb.FromFile("test.stsdb4"))
{
//part 1
var table1 = engine.OpenXTable<string, byte[]>("binary");
var b1 = new byte[] { 0x01, 0x02, 0x03, 0x04 };
table1["b"] = b1;
engine.Commit();
var b2 = table1["b"];
Debug.Assert(b2 != null);
//part 2
var table2 = engine.OpenXTable<byte[], string>("guid");
var k = Guid.NewGuid().ToByteArray();
var v = "value";
table2[k] = v;
engine.Commit();
var v2 = table2[k];
Debug.Assert(v == v2);
}
}
If you run part1 or part2 separately, it is fine.