目前我正在嘗試加載一些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