ObjectScanner GetScanner(Type type) { ObjectScanner scanner; if (!scanners.TryGetValue(type, out scanner)) { scanner = CreateScanner(type); scanners.Add(type, scanner); } return scanner; }