private static void TestFieldRva(WindowsAssembly assembly, TypeSignature fieldType, byte[] fieldRvaData, bool saveToDisk)
{
// set up temp assembly.
var tableStream = assembly.NetDirectory.MetadataHeader.GetStream<TableStream>();
var fieldTable = tableStream.GetTable<FieldDefinition>();
var fieldRvaTable = tableStream.GetTable<FieldRva>();
// create temp field.
var field = new FieldDefinition(FieldName,
FieldAttributes.Public | FieldAttributes.Static | FieldAttributes.HasFieldRva,
new FieldSignature(fieldType));
fieldTable.Add(field);
// create field rva.
var fieldRva = new FieldRva(field, fieldRvaData);
field.FieldRva = fieldRva;
fieldRvaTable.Add(fieldRva);
assembly = Utilities.RebuildNetAssembly(assembly, saveToDisk);
tableStream = assembly.NetDirectory.MetadataHeader.GetStream<TableStream>();
fieldTable = tableStream.GetTable<FieldDefinition>();
field = fieldTable.FirstOrDefault(x => x.Name == FieldName);
Assert.IsNotNull(field);
Assert.IsNotNull(field.FieldRva);
Utilities.ValidateByteArrays(fieldRvaData, field.FieldRva.Data);
}