public static bool TryCreate( ITracer tracer, string dictionaryPath, PhysicalFileSystem fileSystem, out FileBasedDictionary <TKey, TValue> output, out string error, IEqualityComparer <TKey> keyComparer = null) { output = new FileBasedDictionary <TKey, TValue>( tracer, fileSystem, dictionaryPath, keyComparer ?? EqualityComparer <TKey> .Default); if (!output.TryLoadFromDisk <TKey, TValue>( output.TryParseAddLine, output.TryParseRemoveLine, output.HandleAddLine, out error)) { output = null; return(false); } return(true); }