Output: Add namespace exclusions
This commit is contained in:
@@ -15,6 +15,9 @@ namespace Il2CppInspector
|
|||||||
{
|
{
|
||||||
private readonly Il2CppReflector model;
|
private readonly Il2CppReflector model;
|
||||||
|
|
||||||
|
// Namespace prefixes whose contents should be skipped
|
||||||
|
public List<string> ExcludedNamespaces { get; set; }
|
||||||
|
|
||||||
public Il2CppDumper(Il2CppInspector proc) {
|
public Il2CppDumper(Il2CppInspector proc) {
|
||||||
model = new Il2CppReflector(proc);
|
model = new Il2CppReflector(proc);
|
||||||
}
|
}
|
||||||
@@ -31,6 +34,10 @@ namespace Il2CppInspector
|
|||||||
|
|
||||||
foreach (var type in model.Assemblies.SelectMany(x => x.DefinedTypes)) {
|
foreach (var type in model.Assemblies.SelectMany(x => x.DefinedTypes)) {
|
||||||
|
|
||||||
|
// Skip namespace and any children if requested
|
||||||
|
if (ExcludedNamespaces?.Any(x => x == type.Namespace || type.Namespace.StartsWith(x + ".")) ?? false)
|
||||||
|
continue;
|
||||||
|
|
||||||
// Type declaration
|
// Type declaration
|
||||||
writer.Write($"\n// Namespace: {type.Namespace}\n");
|
writer.Write($"\n// Namespace: {type.Namespace}\n");
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
// All rights reserved
|
// All rights reserved
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
|
||||||
namespace Il2CppInspector
|
namespace Il2CppInspector
|
||||||
@@ -49,10 +50,18 @@ namespace Il2CppInspector
|
|||||||
if (il2cppInspectors == null)
|
if (il2cppInspectors == null)
|
||||||
Environment.Exit(1);
|
Environment.Exit(1);
|
||||||
|
|
||||||
|
// Exclusions
|
||||||
|
var excludedNamespaces = new List<string> {
|
||||||
|
"System",
|
||||||
|
"UnityEngine",
|
||||||
|
"Mono",
|
||||||
|
"Microsoft.Win32"
|
||||||
|
};
|
||||||
|
|
||||||
// Write output file
|
// Write output file
|
||||||
int i = 0;
|
int i = 0;
|
||||||
foreach (var il2cpp in il2cppInspectors)
|
foreach (var il2cpp in il2cppInspectors)
|
||||||
new Il2CppDumper(il2cpp).WriteFile(outFile + (i++ > 0 ? "-" + (i-1) : ""));
|
new Il2CppDumper(il2cpp) {ExcludedNamespaces = excludedNamespaces}.WriteFile(outFile + (i++ > 0 ? "-" + (i-1) : ""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
@@ -38,10 +39,18 @@ namespace Il2CppInspector
|
|||||||
if (inspectors.Count == 0)
|
if (inspectors.Count == 0)
|
||||||
throw new Exception("Could not find any images in the IL2CPP binary");
|
throw new Exception("Could not find any images in the IL2CPP binary");
|
||||||
|
|
||||||
|
// Exclusions
|
||||||
|
var excludedNamespaces = new List<string> {
|
||||||
|
"System",
|
||||||
|
"UnityEngine",
|
||||||
|
"Mono",
|
||||||
|
"Microsoft.Win32",
|
||||||
|
};
|
||||||
|
|
||||||
// Dump each image in the binary separately
|
// Dump each image in the binary separately
|
||||||
int i = 0;
|
int i = 0;
|
||||||
foreach (var il2cpp in inspectors)
|
foreach (var il2cpp in inspectors)
|
||||||
new Il2CppDumper(il2cpp).WriteFile(testPath + @"\test-result" + (i++ > 0 ? "-" + (i - 1) : "") + ".cs");
|
new Il2CppDumper(il2cpp) {ExcludedNamespaces = excludedNamespaces}.WriteFile(testPath + @"\test-result" + (i++ > 0 ? "-" + (i - 1) : "") + ".cs");
|
||||||
|
|
||||||
// Compare test result with expected result
|
// Compare test result with expected result
|
||||||
for (i = 0; i < inspectors.Count; i++) {
|
for (i = 0; i < inspectors.Count; i++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user