diff --git a/net/FlatBuffers/Table.cs b/net/FlatBuffers/Table.cs index d6d9d09fb4c..5dde28e9545 100644 --- a/net/FlatBuffers/Table.cs +++ b/net/FlatBuffers/Table.cs @@ -150,7 +150,7 @@ public T[] __vector_as_array(int offset) var pos = this.__vector(o); var len = this.__vector_len(o); - return bb.ToArray(pos, len); + return bb.ToArray(pos, len * ByteBuffer.SizeOf()); } // Initialize any Table-derived type to point to the union at the given offset. diff --git a/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs b/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs index dc541be14fe..d5774571c86 100644 --- a/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs +++ b/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright 2014 Google Inc. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -90,6 +90,9 @@ private void CanCreateNewFlatBufferFromScratch(bool sizePrefix) fbb.AddOffset(test1.Value); var testArrayOfString = fbb.EndVector(); + var longsVector = Monster.CreateVectorOfLongsVector(fbb, new long[] { 1, 100, 10000, 1000000, 100000000 }); + var doublesVector = Monster.CreateVectorOfDoublesVector(fbb, new double[] { -1.7976931348623157e+308, 0, 1.7976931348623157e+308 }); + Monster.StartMonster(fbb); Monster.AddPos(fbb, Vec3.CreateVec3(fbb, 1.0f, 2.0f, 3.0f, 3.0, Color.Green, (short)5, (sbyte)6)); @@ -102,6 +105,8 @@ private void CanCreateNewFlatBufferFromScratch(bool sizePrefix) Monster.AddTestarrayofstring(fbb, testArrayOfString); Monster.AddTestbool(fbb, true); Monster.AddTestarrayoftables(fbb, sortMons); + Monster.AddVectorOfLongs(fbb, longsVector); + Monster.AddVectorOfDoubles(fbb, doublesVector); var mon = Monster.EndMonster(fbb); if (sizePrefix) @@ -285,6 +290,13 @@ private void TestBuffer(ByteBuffer bb) Assert.IsTrue(monster.GetTestarrayofboolsBytes().HasValue); } #endif + + var longArray = monster.GetVectorOfLongsArray(); + Assert.AreEqual(5, longArray.Length); + Assert.AreEqual(100, longArray[1]); + + var doublesArray = monster.GetVectorOfDoublesArray(); + Assert.AreEqual(3, doublesArray.Length); } [FlatBuffersTestMethod]