void EmitScanValueType(ILGenerator il, Type valType)
{
var fieldRef = il.DeclareLocal(valType);
il.Emit(OpCodes.Stloc, fieldRef);
foreach (FieldInfo field in GetSerializableFields(valType)) {
if (IsReferenceOrContainsReferences(field.FieldType)) {
EmitScanField(il, fieldRef, field);
}
}
}