private void WriteTo(MetadataReader reader, ObjectWriter writer, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); var blockFieldInfo = reader.GetType().GetTypeInfo().GetDeclaredField("Block"); var block = blockFieldInfo.GetValue(reader); // TODO: once things become public API, change it to copy stream over byte* and length from metadata reader var toArrayFieldInfo = block.GetType().GetTypeInfo().GetDeclaredMethod("ToArray"); var array = (byte[])toArrayFieldInfo.Invoke(block, null); writer.WriteValue(array); }