public void TestInterpretAsArray()
{
var elementType = ElementType.I4;
int[] expected = new int[] { 1, 2, 3 };
byte[] data = new byte[] { 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0 };
var assembly = Utilities.CreateTempNetAssembly();
var importer = new ReferenceImporter(assembly.NetDirectory.MetadataHeader.GetStream<TableStream>());
var fieldType = new TypeDefinition(string.Empty, "__StaticArrayInitTypeSize=" + data.Length,
importer.ImportType(typeof(ValueType)));
var field = new FieldDefinition(FieldName,
FieldAttributes.Public | FieldAttributes.Static | FieldAttributes.HasFieldRva,
new FieldSignature(new TypeDefOrRefSignature(fieldType) { IsValueType = true }));
var fieldRva = new FieldRva(field, data);
int[] actual = fieldRva.InterpretAsArray(elementType).Cast<int>().ToArray();
Assert.AreEqual(expected.Length, actual.Length, "Length of arrays differ.");
for (int i = 0; i < actual.Length; i++)
Assert.AreEqual(expected[i], actual[i], "Element " + i + " differs from expected.");
}