C# 从Xaml文件创建数据对象
目前我正在尝试加载一些Xaml文件来创建testdata 我使用Xaml文件在VisualStudio()中为WPF设计器创建数据。 现在我想在单元测试中重用它们。我需要以编程方式加载它们。下面是一个小测试程序:C# 从Xaml文件创建数据对象,c#,.net,xaml,C#,.net,Xaml,目前我正在尝试加载一些Xaml文件来创建testdata 我使用Xaml文件在VisualStudio()中为WPF设计器创建数据。 现在我想在单元测试中重用它们。我需要以编程方式加载它们。下面是一个小测试程序: // The data model class TestItem { public string Name { get; set; } public decimal Value { get; set; } public string Category { get
// 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>
LoadAsync方法引发XamlParseException
'无法创建未知类型
“{clr命名空间:WpfApplication1}TestItem”
我需要注册我的TestItem课程吗?这是解决我问题的正确方法,还是我在这里使用不当?我还花了一些时间在-Namespace中。但我无法让它工作
编辑:
在上面的示例代码中,我将Build操作设置为None。当我将其设置为DesignData时,无法找到该文件。我相信您的方法应该可以正常工作
您提到您正在重用相同的代码来编写单元测试(如果我理解正确的话,这就是您得到异常的地方)。如果您正在编写测试并在定义了
TestItem
的程序集中加载XAML,则需要在xmlns:local
属性中指定程序集名称。我发现了错误。公开测试课解决了我的问题
// The data model
public class TestItem
{
public string Name { get; set; }
public decimal Value { get; set; }
public string Category { get; set; }
}
我在一个程序集中创建了上述示例代码。将xmlns:local设置为正确的命名空间。我已将Xaml文件的构建操作设置为“无”(请参阅我的更新)。还是不行。
// The data model
public class TestItem
{
public string Name { get; set; }
public decimal Value { get; set; }
public string Category { get; set; }
}