ObjectWriter GetWriter(Type type) { ObjectWriter writer; if (!writers.TryGetValue(type, out writer)) { writer = CreateWriter(type); writers.Add(type, writer); } return writer; }