ObjectReader GetReader(Type type) { ObjectReader reader; if (!readers.TryGetValue(type, out reader)) { reader = CreateReader(type); readers.Add(type, reader); } return reader; }