Por supuesto, puede tomar utilidades de terceros, por ejemplo, algunos ILSpy de c贸digo abierto, guardar el ensamblado en el disco y luego descompilarlo.
Pero solo quiero conectarme a la base de datos y ver todos los ensamblajes y lo que hay dentro.
Y adem谩s, hay muchos componentes Opensource de alta calidad para todos los casos de vida de programaci贸n, y escribir en C # es conveniente y f谩cil :)
Entonces
Para esto necesitamos un 
paquete NugetLeer todos los ensamblajes de la base de datos
SqlDataReader, la consulta SQL es trivial:
SELECT af.name, af.content FROM sys.assemblies a INNER JOIN sys.assembly_files af ON a.assembly_id = af.assembly_id 
Inicializar ensamblaje
es decir, cargar nuestros bytes en la clase 
AssemblyDefinition var _assemblyDefinition = Mono.Cecil.AssemblyDefinition.ReadAssembly(new MemoryStream(rdr.GetSqlBytes(1).Value), pars); 
rdr: aqu铆 es solo SqlDataReader, pero puede leer todos los ensamblajes en una lista, por ejemplo, una lista de objetos de una clase tan simple
 public class SqlAssemblyObject { public string AssemblyName { get; set; } public SqlBytes Data { get; set; } } 
Como generalmente hay muchos ensamblajes, es conveniente mostrarlos en forma de lista o tableta, 隆pero el interior en forma de 谩rbol, por supuesto!
Algo como esto ser谩 la norma

Mostramos
por ejemplo, en TreeView
 foreach (var typeInAssembly in _assemblyDefinition.MainModule.Types) { if (typeInAssembly.IsPublic) { var node = new TreeNode(typeInAssembly.FullName); node.Tag = typeInAssembly; } treeView1.Nodes.Add(node); } 
Descompilaci贸n
隆Solo tres l铆neas de c贸digo! (por ejemplo, lo hice en el evento 
treeView1_AfterSelect )
 var decompiler = new ICSharpCode.Decompiler.CSharp.CSharpDecompiler(_assemblyDefinition.MainModule, new DecompilerSettings()); var str = decompiler.DecompileAsString(e.Node.Tag as IMemberDefinition); textbox1.Text = str; 
La fuente misma, donde todo se uneSe ve as铆 al final

Un poco sobre las trampas
Naturalmente, los ensamblajes pueden depender de ensamblajes, y todo esto puede estar en la base de datos SQL.
Luego, si descompila "en la frente", habr谩 un error de descompilaci贸n.
Evitarlo es f谩cil (porque hay un AssemblyResolver en ICSharpCode.Decompiler):
Escribamos nuestra resoluci贸n simplemente pas谩ndola a todos los ensamblajes disponibles en la base de datos SQL analizada:
 public class DatabaseAssemblyResolver : IAssemblyResolver { List<SqlAssemblyObject> _databaseLibs; DefaultAssemblyResolver _resolver; public DatabaseAssemblyResolver(List<SqlAssemblyObject> dlls) { _databaseLibs = dlls; _resolver = new DefaultAssemblyResolver(); } public void Dispose() {  
La variable 
_listItems es solo una lista de todos los ensamblados de 
sys.assembly_files var pars = new ReaderParameters(); pars.AssemblyResolver = new DatabaseAssemblyResolver(_listItems); _assemblyDefinition = Mono.Cecil.AssemblyDefinition.ReadAssembly(new MemoryStream(_listItems[idx].Data.Value), pars); 
Ahora, al descompilar, 隆todas las dependencias se pueden resolver!

PD: Lily James se utiliz贸 para llamar la atenci贸n.