| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Reflection;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using dnlib.DotNet;
 
- using HybridCLR.Editor.Meta;
 
- using UnityEditor;
 
- using UnityEngine;
 
- using IAssemblyResolver = HybridCLR.Editor.Meta.IAssemblyResolver;
 
- namespace HybridCLR.Editor.Link
 
- {
 
-     public class Analyzer
 
-     {
 
-         private readonly IAssemblyResolver _resolver;
 
-         public Analyzer(IAssemblyResolver resolver)
 
-         {
 
-             _resolver = resolver;
 
-         }
 
-         public HashSet<TypeRef> CollectRefs(List<string> rootAssemblies)
 
-         {
 
-             var assCollector = new AssemblyCache(_resolver);
 
-             var rootAssemblyNames = new HashSet<string>(rootAssemblies);
 
-             var typeRefs = new HashSet<TypeRef>(TypeEqualityComparer.Instance);
 
-             foreach (var rootAss in rootAssemblies)
 
-             {
 
-                 var dnAss = assCollector.LoadModule(rootAss, false);
 
-                 foreach (var type in dnAss.GetTypeRefs())
 
-                 {
 
-                     if (type.DefinitionAssembly == null)
 
-                     {
 
-                         Debug.LogWarning($"assembly:{dnAss.Name} TypeRef {type.FullName} has no DefinitionAssembly");
 
-                         continue;
 
-                     }
 
-                     if (!rootAssemblyNames.Contains(type.DefinitionAssembly.Name.ToString()))
 
-                     {
 
-                         typeRefs.Add(type);
 
-                     }
 
-                 }
 
-             }
 
-             return typeRefs;
 
-         }
 
-     }
 
- }
 
 
  |