我继承自class Role extends Model
{
public function admins()
{
return $this->hasMany('App\Admin');
}
}
,以便添加一些自定义属性来支持外观。一切都能编译并正常运行,但是VS2017 XAML设计器显示错误消息“对象与目标类型不匹配”。下面的简单类足以重现该问题:
ResourceDictionary
一个有趣的线索是,它仅在引用custom属性时显示异常。第三项显示异常,但第二项不显示:
public class SubclassedResourceDictionary : ResourceDictionary
{
public SubclassedResourceDictionary() : base()
{ }
public string ExtraInfo { get; set; } = string.Empty;
}
通常我不会将此视作另一个设计者错误,但是我的实际代码还实现了<ResourceDictionary Source="Styles/BorderStyling.xaml"/>
<local:SubclassedResourceDictionary Source="Styles/BorderStyling.xaml"/>
<local:SubclassedResourceDictionary ExtraInfo="foo" Source="Styles/BorderStyling.xaml"/>
接口,该接口引发异常,以警告开发人员有关自定义属性的无效组合。这些异常从未显示过,这至少告诉我目标类型的异常在代码运行之前发生。
我想知道用于存储资源的集合是否具有仅接受“真实” ISupportInitialize
对象的代码。无论是在ResourceDictionary
列表中还是在其他资源列表(例如MergedDictionary
)中引用子类,我都遇到了这一问题。但是,它实际上又可以构建并运行,因此,如果这是问题所在,也许它特定于设计者验证?
该问题看上去与2015年的this问题类似,但被接受的答案仅是指出,该错误已得到修复(紧随其后的是评论未修复)。同样的错误?有解决方法吗?
我还找到了this的答案,听起来可能是相关的,但我一直无法弄清楚如何尝试。 VS2017似乎不提供对设计器文件的访问,只是在文件视图中(不是解决方案视图,在该视图中可以修改属性)。