private static HashSet <string> GenerateNativeClassList(RuntimeClassRegistry rcr, string directory, string[] rootAssemblies)
{
HashSet <string> set = CollectNativeClassListFromRoots(directory, rootAssemblies);
foreach (string str in NativeClassBlackList)
{
set.Add(str);
}
foreach (string str2 in rcr.GetAllNativeClassesIncludingManagersAsString())
{
int iD = BaseObjectTools.StringToClassID(str2);
if ((iD != -1) && !BaseObjectTools.IsBaseObject(iD))
{
set.Add(str2);
}
}
HashSet <string> set2 = new HashSet <string>();
foreach (string str3 in set)
{
for (int i = BaseObjectTools.StringToClassID(str3); !BaseObjectTools.IsBaseObject(i); i = BaseObjectTools.GetSuperClassID(i))
{
set2.Add(BaseObjectTools.ClassIDToString(i));
}
}
return(set2);
}