Wpf 使用contentProperty加载XAML时出错

Wpf 使用contentProperty加载XAML时出错,wpf,xaml,Wpf,Xaml,我正在阅读更多关于XAML的内容,我已经创建了一个XML文件并希望加载它。这一切都是可行的,但当我使用ContentProperty属性时,更重要的是从XML文件中删除Company.Employees标记时,加载XML文件时会出现错误“无法添加到公司” 代码是: <?xml version="1.0" encoding="utf-8" ?> <Company Name="BBC" xmlns="clr-namespace:XamlLoading;assembly=XamlL

我正在阅读更多关于XAML的内容,我已经创建了一个XML文件并希望加载它。这一切都是可行的,但当我使用ContentProperty属性时,更重要的是从XML文件中删除Company.Employees标记时,加载XML文件时会出现错误“无法添加到公司”

代码是:

<?xml version="1.0" encoding="utf-8" ?>
 <Company Name="BBC" xmlns="clr-namespace:XamlLoading;assembly=XamlLoading">
  <Company.Owner> 
    <Person Name="John" Age="49"/>
  </Company.Owner>

  <!--<Company.Employees>
    <Person Name="Dave" Age="66" />
     <Person Name="Paul" Age="45"/>
  </Company.Employees>-->

 <Person Name="Dave" Age="66" />
 <Person Name="Paul" Age="45"/>
</Company>

[ContentProperty(“员工”)]
公营公司
{
上市公司()
{
雇员=新名单();
}
公共人物所有者{get;set;}
公共字符串名称{get;set;}
公共列表雇员{get;set;}
}
静态void Main(字符串[]参数)
{
使用(FileStream fs=File.OpenRead(@“.\..\company.xml”))
{
Company c=(Company)XamlReader.Load(fs);*此处出错
Console.WriteLine(c.Name);
Console.WriteLine(c.Owner);
foreach(c.Employees中的var项目)
{
Console.WriteLine(“{0}:”,项);
}
Console.ReadLine();
}
}

我建议您更新到.NET的最新版本。你的代码对我很有用

这是一个非常有趣的XAML案例研究。我以前从未见过这样使用它。通常,XAML与HTML标记一样用于声明式定义用户界面。是一个WYSIWYG编辑器,用于通过生成XAML创建用户界面


您已经展示了使用XamlReader从xml实现数据的一些有趣的潜力。

谢谢Josh,我很想感谢您,但我不太记得在哪里见过它被使用。顺便问一下,您是否尝试过使用XmlSerializer?它最终与您在这里尝试使用的XamlReader非常相似。