将 Baml 文件转换为可用的 XDocument 以进行解析



我希望能够针对 Xaml 编写单元测试以查找不正确的模式。我们遇到了 Xaml 仍然有效的问题,否则编译和"工作"正常,但可能会导致隐藏问题或缺乏一致性。为了帮助解决这个问题,我们希望针对文件编写单元测试。

一个简单的示例:如果您定义了一个网格,并且网格列绑定到基础对象上的数值字段,则网格的列标题应根据我们的内部标准具有适当的右对齐模板。将模板排除在定义之外将产生一个左对齐的列标题,除了我们的内部标准之外,它不会真正破坏任何其他内容。鉴于这基本上是 xml,我应该能够轻松编写一个测试来询问 xml 元素,检测数字列的存在并检查以确保文件还定义了右对齐的标题模板。这样,我就不必依赖开发人员或QA来涵盖像这样易于测试的内容。

我可以在单元测试过程中访问程序集,并且可以通过读取清单资源流来访问所有 baml 资源文件。但是我不知道如何将它们读成一种有用的格式,我可以加载到像 XDocument 这样的东西中进行分析和阅读。有人这样做过吗?我试过使用 Baml2006Reader 等...没有任何好的成功。

如果你想将BAML转换为XAML,你可以在GitHub上查看下面的BamlTranslator类。

它使用BinaryReader来反编译BAML。

最新更新