using System.Reflection; using System.Reflection.Metadata; using System.Reflection.PortableExecutable; string path = "/home/dazed/.local/share/Steam/steamapps/common/worldbox/worldbox_Data/Managed/Assembly-CSharp.dll"; using var fs = File.OpenRead(path); using var pe = new PEReader(fs); var md = pe.GetMetadataReader(); foreach (var typeName in new[]{"FamilyManager","PlotManager","ArmyManager","AllianceManager","ClanManager"}) { Console.WriteLine("== "+typeName+" =="); foreach (var th in md.TypeDefinitions) { var t = md.GetTypeDefinition(th); if (md.GetString(t.Name)!=typeName) continue; foreach (var mh in t.GetMethods()) { var m = md.GetMethodDefinition(mh); var n = md.GetString(m.Name); if (n.StartsWith("get_")||n.StartsWith("set_")||n is ".ctor") continue; var attrs = m.Attributes; if ((attrs & MethodAttributes.Public) == 0) continue; Console.WriteLine(" "+n); } } }