如何将复杂的BAML反编译为有效的XAML

时间:2011-06-15 09:48:45

标签: c# wpf xaml baml

我试过了ILSpy,但它失败了:

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()

我为.Net Reflector尝试了Baml Viewer,但它无法生成有效的XAML。

主要问题是Binding引用了错误的StaticResource。

例如(namedViews是CollectionViewSource):

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

反编译BAML还有哪些其他应用程序? BAML Viewer的任何补丁?

1 个答案:

答案 0 :(得分:6)

不确定这是否对您有所帮助,但如果您可以运行该应用程序,则可以使用Snoop来运行WPF应用程序的结构。

其他选择:

我只尝试过Snoop并非常喜欢它,但这似乎并没有解决你的问题。