The Facile API is capable of reading (decompiling) .Net assemblies. Covering the metadata tables, the embedded types and methods, including their bodies as CIL (bytecode).
Initially the Facile API has been written to perform analysis of .Net assemblies, independent of the authoring .Net language.
Please make a donation if you like it:
try {
//specify a path, where to find the assembly
String assemblyName = "mscorlib.dll";
String assemblyLocation = "../path/to/assembly/" + assemblyName;
//reflect and load the assembly using the Facile factory
Assembly assembly = Facile.loadAssembly(assemblyLocation);
//perform your custom operations on the assembly...
System.out.println("All defined types in " + assemblyName + ":\n");
for(Type type : assembly.getAllTypes()) {
System.out.println(type);
}
} catch (Exception e) {
e.printStackTrace();
}
FacileReader (RCP using the Facile API): There is an alpha version of that, see download section (still using API version 1.0.2). I might do a total re-write without Eclipse/RCP because of several plugin issues.
Running CIL code in Java, emulating the VES: internal idea, collecting more infromation...
The most recent stable API version as Java archive (even though the master/trunk can be always seen as stable):
https://github.com/TomSmartBishop/facile-api/blob/1.0.3/Facile/at.pollaknet.api.facile_1.0.3.jar
Using the Facile API for a decompiler application - FacileReader (alpha):
The Facile API is commercially used by the Sonargraph Explorer: http://www.hello2morrow.com