Xamarin.forms 名称为;AppClass“;命名空间中不存在“…”&引用;从另一个基于应用程序的类继承UWP应用程序类时
我想要实现的只是继承UWP应用程序类,而不是从Windows.UI.Xaml.Application类继承,而是从一些基类继承,从“标准”类继承 但是,当我这样做时:Xamarin.forms 名称为;AppClass“;命名空间中不存在“…”&引用;从另一个基于应用程序的类继承UWP应用程序类时,xamarin.forms,uwp,mvvmcross,Xamarin.forms,Uwp,Mvvmcross,我想要实现的只是继承UWP应用程序类,而不是从Windows.UI.Xaml.Application类继承,而是从一些基类继承,从“标准”类继承 但是,当我这样做时: namespace MyNamespace { sealed partial class App : MyUwpBaseApplication { public App() { this.InitializeComponent(); }
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名秋季创建者更新
我怎么办 这实际上只是XAML语法中的一个错误,不是继承的问题 您需要在xaml命名空间声明中使用“clr命名空间”而不是“使用”。clr名称空间告诉解析器后面是名称空间的实际名称。如果解析器不识别前缀(并且“using”不是可识别的前缀),则解析器将假定xmlns:local属性的值引用名为“using:MyNamespace”的命名空间映射,该映射显然不存在 因此,在XAML中声明名称空间,如下所示:
xmlns:local="clr-namespace:MyNamespace"
当你开始UWP开发时,事情变得非常奇怪,特别是考虑到这是Windows本机平台开发(你好,Microsoft!) 但是VisualStudio在XAML和UWP方面确实非常“反复无常” 我仍然不知道你应该对这个项目做些什么来实现这一目标的确切原因,但解决方案肯定是其中之一 它肯定与以下方面有关:
- 以管理员身份运行VisualStudio
- 删除bin、obj文件夹
- 清洗溶液
- 重建项目
(仍然应该有
xmlns:local=“using:MyNamespace”
,而不是clr namespace
(否则会出现其他错误))。感谢您的快速回答。但是,现在我收到了“名称”UWPApplication0“在名称空间“clr namespace:…”中不存在的错误消息。Visual Studio总是给出这些愚蠢的“错误”。我在VS2015中的xaml与VS2017中的xaml完全相同,但2017给出的愚蠢的“名称”不存在“错误。如果我点击它并按下F12,它会显示出它所说的不存在的东西。因此IDE使用不同的方法来查找编译器需要的资源。是哪个白痴想出的?