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

时间:2018-09-12 13:35:41

标签: wpf unit-testing xaml baml

我希望能够针对Xaml编写单元测试,以查找不正确的模式。在Xaml仍然有效的情况下,我们会遇到一些问题,否则Xaml仍然可以编译和“正常运行”,但可能导致隐藏的问题或缺乏一致性。为了解决这个问题,我们想针对这些文件编写单元测试。

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

我可以在单元测试过程中访问程序集,并且可以通过读取清单资源流来访问所有baml资源文件。但是我不知道如何将它们读取为有用的格式,可以将其加载到诸如XDocument之类的文件中以进行解析和细读。有人这样做吗?我尝试使用Baml2006Reader等,但未取得任何成功。

1 个答案:

答案 0 :(得分:2)

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

它使用BinaryReader来反编译BAML。