예제 #1
0
 private static void AddEntry(SemanticModel model, CompilationInfo info)
 {
     if (Compilations.Count >= 5)
     {
         var first = Compilations.First();
         first.Value.Dispose();
         Compilations.Remove(first.Key);
     }
     Compilations[model] = info;
 }
예제 #2
0
 public static CompilationInfo Get(SemanticModel model)
 {
     lock (objectLock)
     {
         if (Compilations.TryGetValue(model, out var info))
         {
             return(info);
         }
         var newInfo = new CompilationInfo(model);
         AddEntry(model, newInfo);
         return(newInfo);
     }
 }