/// <summary> /// 未解決の参照を修正する /// </summary> /// <param name="analyzeResults">対象ファイルの解析結果リスト</param> private void FixUnknownReferences(ref List <AnalyzeResult> analyzeResults) { // 実行中のメソッド名を設定する RunMethodName = MethodBase.GetCurrentMethod().Name; // 解析ファイルの作成 var results = new List <AnalyzeResult>(); results.AddRange(analyzeResults); var dictionary = new AnalyzeResult(); dictionary.ClassNames.Add("Dictionary"); dictionary.ImportPath = "Dictionary"; results.Add(dictionary); var list = new AnalyzeResult(); list.ClassNames.Add("List"); list.ImportPath = "List"; results.Add(list); // 未解決の参照を解消する foreach (var analyzeResult in results) { if (!analyzeResult.UnknownReferences.Any()) { continue; } // 未解決の参照の設定を行う SetReference(analyzeResult); } // 変換済のTSファイル情報リストから検索・設定する void SetReference(AnalyzeResult target) { foreach (var searchName in target.UnknownReferences.Keys.ToList()) { var refrences = results.Where(item => item.ClassNames.Contains(searchName)); if (refrences.Any()) { // 変換済のTSファイル情報に未解決の参照がある場合は設定する target.UnknownReferences[searchName] = refrences.First().ImportPath; } } } }