我想要实现的只是继承UWP App类而不是来自Windows.UI.Xaml.Application类,而是继承自“标准”类的一些基类。
然而,当我这样做时:
namespace MyNamespace
{
sealed partial class App : MyUwpBaseApplication
{
public App()
{
this.InitializeComponent();
}
}
}
和xaml:
<local:MyUwpBaseApplication
x:Class="MyNamespace.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MyNamespace">
</local:MyUwpBaseApplication>
我同时收到:XAML设计器中的设计时错误以及编译错误:
错误XDG0008名称“MyUwpBaseApplication”中不存在 命名空间 “使用:myNameSpace对象”。 MyNamespace App.xaml 1
我需要基类使用MvvmCross和Xamarin.Forms。但是我收到的错误是通用的,与其中任何一个都无关。
Visual Studio:15.7。 Windows:10个秋季创作者更新。
我该怎么处理?
答案 0 :(得分:4)
当你进入UWP开发时,事情变得非常奇怪,特别是考虑到这是Windows Native平台开发(你好微软!)
但是,Visual Studio真的很反复无常&#34;一般是XAML,特别是UWP。
我仍然不知道您应该如何使用该项目来完成这项工作,但解决方案绝对属于 these hints。
它肯定有以下内容:
至少,在完成所有这些操作之后,项目现在编译得非常好(并且始终独立于bin,obj是否存在)。所以,我正在考虑,这可能是在其他地方(除了项目文件夹之外)对已构建的二进制文件进行一些缓存的事情。
可能的原因之一是在一个解决方案中同时拥有多个UWP项目(至少,当我构建其中一个项目的错误消息出现在所有项目中时),所以我不得不隐藏其他项目
(仍然应该有xmlns:local="using:MyNamespace"
,而不是clr-namespace
(否则会出现其他错误)。
答案 1 :(得分:-1)
这实际上只是XAML语法中的错误,而不是继承问题。
您需要在xaml名称空间声明中使用“clr-namespace”而不是“using”。 clr-namespace告诉解析器接下来是名称空间的实际名称。如果它不识别前缀(并且“using”不是识别的前缀),则解析器假定xmlns:local属性的值是指名为“using:MyNamespace”的名称空间映射,这显然不存在。
因此,在XAML中声明命名空间如下:
xmlns:local="clr-namespace:MyNamespace"
你会很高兴。