В настоящее время я пытаюсь загрузить некоторые файлы Xaml для создания тестовых данных.
Я использовал файлы Xaml для создания данных для дизайнера WPF в Visual Studio ( 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-namespace: WpfApplication1} TestItem '
Нужно ли каким-либо образом регистрировать мой класс TestItem?Это правильный подход для решения моей проблемы, или я не использую XamlReader здесь?Я также провел некоторое время в System.Xaml -Namespace.Но я не смог заставить его работать.
Редактировать:
В приведенном выше примере кода я установил для параметра Действия сборки значение Нет.Когда я устанавливаю его в DesignData, файл не может быть найден.