public static bool IsEqual(this StructWithBlobs b, StructWithByteLists v) { if (b.lb.Count != v.lb.Count) { return(false); } for (var i = 0; i < b.lb.Count; ++i) { if (!IsEqual(b.lb[i], v.lb[i])) { return(false); } } return(IsEqual(b.b, v.b) && ((b.nb.Array == null) && (v.nb == null) || IsEqual(b.nb, v.nb))); }
void RoundtripTests() { var containers = new SimpleContainers(); for (int i = 0; i < 30; i++) { containers.strings.Add(i.ToString()); containers.numbers.Add(i, i.ToString()); } RoundtripObject <SimpleContainers>(containers); var blobs = new StructWithBlobs(); blobs.b = new ArraySegment <byte>(blobData, 0, 30); blobs.lb.Add(new ArraySegment <byte>(blobData, 0, 30)); blobs.lb.Add(new ArraySegment <byte>(blobData, 1, 30)); RoundtripObject <StructWithBlobs>(blobs); }