private static Array ReadEnumerable(Type inner, string name, int count) { var arr = Array.CreateInstance(inner, count); for (int i = 0; i < count; i++) { arr.SetValue(ReaderForType(inner)(name + "." + i, default), i); } return(arr); }
public static T Read <T>(string name, T or = default) => (T)ReaderForType(typeof(T))(name, or);
public static object ReadNullable(Type inner, string name, object or) => ReadBool(name + ".exists", false) ? ReaderForType(inner)(name, or) : null;