我尝试了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。

主要问题是与绑定(bind)对错误的StaticResource的引用有关。

例如(namedViews是CollectionViewSource):
   Visibility="{Binding Path=Value, Converter={StaticResource namedViews}}"
   ToolTip="{StaticResource namedViews}"

还有哪些其他应用程序可以反编译BAML? BAML查看器有补丁吗?

最佳答案

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

其他选项:

  • dotPeek(但我认为它需要基于Reflector的Baml Viewer的Baml4dotPeek插件,正如您所说,该插件不起作用。)
  • JustDecompile(我相信您必须向Telerik注册)
  • Woodstock for WPF

  • 我只尝试过Snoop并非常喜欢它,但这似乎并不能解决您的问题。

    关于c# - 如何将复杂的BAML反编译为有效的XAML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6355873/

    10-12 03:58