示例#1
0
    public static void Register(
        string name,
        Action <IGenericWriter> serializer,
        Action <IGenericReader> deserializer,
        int priority = Persistence.DefaultPriority
        )
    {
        BufferWriter saveBuffer = null;

        void Serialize()
        {
            saveBuffer ??= new BufferWriter(true);
            saveBuffer.Seek(0, SeekOrigin.Begin);

            serializer(saveBuffer);
        }

        void WriterSnapshot(string savePath)
        {
            string binPath = Path.Combine(savePath, name, $"{name}.bin");
            var    buffer  = saveBuffer !.Buffer.AsSpan(0, (int)saveBuffer.Position);

            AdhocPersistence.WriteSnapshot(binPath, buffer);
        }

        void Deserialize(string savePath) =>
        AdhocPersistence.Deserialize(Path.Combine(savePath, name, $"{name}.bin"), deserializer);

        Persistence.Register(name, Serialize, WriterSnapshot, Deserialize, priority);
    }
示例#2
0
        private void TestConstructor()
        {
            Persistence <string> adhocPersistence = new AdhocPersistence <string>(persistenceLoadMock.Object, persistenceStoreMock.Object);

            Assert.NotNull(adhocPersistence);
        }