我想为我的所有视图模型创建一个抽象基类,但是我遇到了可访问性问题,似乎无法浏览这些错误。下面是我的代码示例:如何使用WinRT类创建公共视图模型库?
public ref class ViewModelBase {
...
}
public ref class OtherViewModel : ViewModelBase {
...
}
当我确定我的代码为国家上面,我得到以下错误:
错误C4585:“了myNameSpace :: ViewModelBase”:一个WinRT的“公共引用类“必须被密封或从现有的未密封类
如果不是得到,我做ViewModelBase私人,我得到这个错误:
错误C3213:基类的MyNamespa ce :: ViewModelBase'不如'OtherViewModel'可访问
这似乎应该是非常简单。我究竟做错了什么?
感谢您的澄清。我注意到一个BindableBase类带有一个新的项目模板,并且它使用了DependencyObject。虽然我觉得这个限制相当令人沮丧,但很好理解,以便继续。 –
是的,这个限制在产品周期中显得有点晚,并且在Windows Runtime团队的要求下,他们希望为将来的版本保留该功能(通用运行时类继承),当我们有更多的跑道去设计更多连贯的故事。 所有的语言预测都有这个限制,但是它在C#中不那么痛苦,因为运行时反射允许它们支持私有类的数据绑定。 –
这是我见过的最糟糕的设计,完全破坏了面向对象的范例。 –