目前我正在尝试加载一些Xaml文件来创建测试数据。从Xaml文件创建数据对象
我使用Xaml文件为Visual Studio中的WPF设计器(DesignData)创建数据。 现在我想在我的单元测试中重用它们。我需要以编程方式加载它们。这里是一个小的测试程序:
// The data model
class TestItem
{
public string Name { get; set; }
public decimal Value { get; set; }
public string Category { get; set; }
}
XAML中的数据文件:
<sys:ArrayList xmlns:sys="clr-namespace:System.Collections;assembly=mscorlib"
xmlns:local="clr-namespace:WpfApplication1">
<local:TestItem Name="Item1" Value="123" Category="Cat1" />
<local:TestItem Name="Item2" Value="456" Category="Cat1" />
<local:TestItem Name="Item3" Value="789" Category="Cat2" />
</sys:ArrayList>
现在我尝试读取数据:
var reader = new System.Windows.Markup.XamlReader();
var obj = reader.LoadAsync(File.OpenRead("Test.xaml"));
的LoadAsync方法抛出XamlParseException。
“无法创建未知类型 '{CLR的命名空间:WpfApplication1} TestItem'
我需要以某种方式注册我的TestItem类?这是解决我的问题的正确方法,还是我在这里错过了XamlReader?我也花了一些时间在System.Xaml-命名空间。但我无法得到它的工作。
编辑:
在上面的示例代码,我设置了生成操作为None。当我将其设置为DesignData时,无法找到该文件。
我在一个程序集中创建了上面的示例代码。 xmlns:local被设置为正确的名称空间。我已将Xaml文件的构建操作设置为无(请参阅我的更新)。仍然没有工作。 – PetPaulsen 2010-10-16 18:55:53