Exemple #1
0
        public BamlDecompilationResult Decompile(Stream stream)
        {
            var ct       = CancellationToken;
            var document = BamlReader.ReadDocument(stream, ct);
            var ctx      = XamlContext.Construct(typeSystem, document, ct, settings);

            var handler = HandlerMap.LookupHandler(ctx.RootNode.Type);
            var elem    = handler.Translate(ctx, ctx.RootNode, null);

            var xaml = new XDocument();

            xaml.Add(elem.Xaml.Element);

            foreach (var pass in rewritePasses)
            {
                ct.ThrowIfCancellationRequested();
                pass.Run(ctx, xaml);
            }

            var assemblyReferences = ctx.Baml.AssemblyIdMap.Select(a => a.Value.AssemblyFullName);

            return(new BamlDecompilationResult(xaml, assemblyReferences));
        }
Exemple #2
0
        public XDocument Decompile(IDecompilerTypeSystem typeSystem, BamlDocument document, CancellationToken token, BamlDecompilerOptions bamlDecompilerOptions, List <string> assemblyReferences)
        {
            var ctx = XamlContext.Construct(typeSystem, document, token, bamlDecompilerOptions);

            var handler = HandlerMap.LookupHandler(ctx.RootNode.Type);
            var elem    = handler.Translate(ctx, ctx.RootNode, null);

            var xaml = new XDocument();

            xaml.Add(elem.Xaml.Element);

            foreach (var pass in rewritePasses)
            {
                token.ThrowIfCancellationRequested();
                pass.Run(ctx, xaml);
            }

            if (assemblyReferences != null)
            {
                assemblyReferences.AddRange(ctx.Baml.AssemblyIdMap.Select(a => a.Value.AssemblyFullName));
            }

            return(xaml);
        }