Exemplo n.º 1
0
        public void Decompile(Stream assemblyStream, TextWriter codeWriter)
        {
            // ReSharper disable once AgentHeisenbug.CallToNonThreadSafeStaticMethodInThreadSafeType
            var readerParameters = new ReaderParameters {
                AssemblyResolver = _assemblyResolver
            };

            using (var module = ModuleDefinition.ReadModule(assemblyStream, readerParameters)) {
                var decompiler = new ICSharpCode.Decompiler.CSharp.CSharpDecompiler(module, DecompilerSettings);
                var syntaxTree = decompiler.DecompileWholeModuleAsSingleFile();

                new CSharpOutputVisitor(codeWriter, FormattingOptions).VisitSyntaxTree(syntaxTree);
            }
        }
Exemplo n.º 2
0
        public string Dump()
        {
            using (var testEnvironment = RuntimeEnvironmentFactory.Create(_dependencies))
            {
                string             mainModuleFullName   = Emit(testEnvironment, manifestResources: null, EmitOptions.Default);
                IList <ModuleData> moduleDatas          = testEnvironment.GetAllModuleData();
                string             mainModuleSimpleName = moduleDatas.Single(md => md.FullName == mainModuleFullName).SimpleName;
                RuntimeEnvironmentUtilities.DumpAssemblyData(moduleDatas, out var dumpDir);

                string modulePath = Path.Combine(dumpDir, mainModuleSimpleName + ".dll");
                var    decompiler = new ICSharpCode.Decompiler.CSharp.CSharpDecompiler(modulePath, new ICSharpCode.Decompiler.DecompilerSettings());
                var    syntaxTree = decompiler.DecompileWholeModuleAsSingleFile();
                return(syntaxTree.ToString());
            }
        }
Exemplo n.º 3
0
        public void Decompile(CompilationStreamPair streams, TextWriter codeWriter)
        {
            Argument.NotNull(nameof(streams), streams);
            Argument.NotNull(nameof(codeWriter), codeWriter);

            using (var assemblyFile = new PEFile("", streams.AssemblyStream))
                using (var debugInfo = streams.SymbolStream != null ? _debugInfoFactory(streams.SymbolStream) : null) {
                    var decompiler = new ICSharpCode.Decompiler.CSharp.CSharpDecompiler(assemblyFile, _assemblyResolver, DecompilerSettings)
                    {
                        DebugInfoProvider = debugInfo
                    };
                    var syntaxTree = decompiler.DecompileWholeModuleAsSingleFile();

                    new CSharpOutputVisitor(codeWriter, FormattingOptions).VisitSyntaxTree(syntaxTree);
                }
        }
Exemplo n.º 4
0
        public void Decompile(CompilationStreamPair streams, TextWriter codeWriter)
        {
            Argument.NotNull(nameof(streams), streams);
            Argument.NotNull(nameof(codeWriter), codeWriter);

            var readerParameters = new ReaderParameters {
                AssemblyResolver = _assemblyResolver
            };

            using (var module = ModuleDefinition.ReadModule(streams.AssemblyStream, readerParameters)) {
                var decompiler = new ICSharpCode.Decompiler.CSharp.CSharpDecompiler(module, DecompilerSettings);
                var syntaxTree = decompiler.DecompileWholeModuleAsSingleFile();

                new CSharpOutputVisitor(codeWriter, FormattingOptions).VisitSyntaxTree(syntaxTree);
            }
        }