private ThreadData Extract(string relativeFilePath, ParallelLoopState state, ThreadData data) { var extension = Path.GetExtension(relativeFilePath); var extractor = data.GetExtractor(extension); if (extractor == null) { return(data); } string content; LocalizableTextInfo[] texts; try { content = File.ReadAllText(Path.Combine(_basePath !, relativeFilePath)); texts = extractor.Extract(content).ToArray(); } catch (Exception ex) { data.Results.Add(relativeFilePath, new ExtractResult { Error = ex.Message.Replace(Environment.NewLine, " ") }); return(data); } if (texts.Length > 0) { data.Results.Add(relativeFilePath, new ExtractResult { Texts = texts }); } return(data); }