This is the area where a single word can change things from “very easy to do” to “no, that’s not possible, sorry” and vice versa. So it is always better to ask again.
Yes, it helps a lot.
So, as far as I understand the service you are developing doesn’t inherit from the base DataAbstract service.
So the reader/writer code would look like
public IList<Delta> DeserializeDelta(Binary serializedDelta)
{
var deltas = new List<Delta>();
var streamer = new Bin2DataStreamer();
try
{
streamer.InitializeStreamer(serializedDelta, StreamerInitialization.ReadFromBeginning);
foreach (var element in streamer.Elements.Values)
{
if (element.ElementType != StreamElementType.Delta)
{
continue;
}
var schemaTable = new SchemaDataTable(element.Name); // Better to cache this
var delta = new Delta(schemaTable);
streamer.ReadDelta(delta);
deltas.Add(delta);
}
}
finally
{
streamer.FinalizeStreamer();
}
return deltas;
}
public Binary SerializeDelta(IList<Delta> deltas)
{
var serializedDeltas = new Binary();
var streamer = new Bin2DataStreamer();
try
{
foreach (var delta in deltas)
{
streamer.WriteDelta(delta);
}
}
finally
{
streamer.FinalizeStreamer();
}
return serializedDeltas;
}