5 votes

Comment décompiler un BAML complexe en XAML valide ?

J'ai essayé ILSpy, mais ça a échoué :

System.NotImplementedException: StaticResourceStart
    Ricciolo.StylesExplorer.MarkupReflection.XmlBamlReader.ProcessNext()
    Ricciolo.StylesExplorer.MarkupReflection.XmlBamlReader.ReadInternal()
    Ricciolo.StylesExplorer.MarkupReflection.XmlBamlReader.Read()
    System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r)
    System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o)
    System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options)
    ILSpy.BamlDecompiler.BamlResourceEntryNode.LoadIntoDocument(IAssemblyResolver resolver, AssemblyDefinition asm, Stream stream)
    ILSpy.BamlDecompiler.BamlResourceEntryNode.LoadBaml(AvalonEditTextOutput output)
    ILSpy.BamlDecompiler.BamlResourceEntryNode.<>c__DisplayClass3.<View>b__1()

J'ai essayé Baml Viewer pour .Net Reflector, mais il n'a pas pu générer de XAML valide.

Le principal problème était de lier cette référence à une mauvaise StaticResource.

Par exemple (namedViews est CollectionViewSource) :

   Visibility="{Binding Path=Value, Converter={StaticResource namedViews}}"
   ToolTip="{StaticResource namedViews}"

Quelles autres applications existent pour décompiler BAML ? Un patch pour BAML Viewer ?

6voto

Peter Points 5015

Je ne sais pas si cela va vous aider, mais si vous pouvez exécuter l'application, vous pouvez utiliser Snoop pour parcourir la structure d'une application WPF.

Autres options :

Je n'ai essayé que Snoop et je l'aime beaucoup, mais cela ne semble pas avoir résolu votre problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X