C# 导航到继承页面的页面时发生TypeLoadException
当我尝试导航到自定义页面时,遇到TypeLoadException 这是基类:C# 导航到继承页面的页面时发生TypeLoadException,c#,wpf,windows-runtime,windows-phone-8.1,win-universal-app,C#,Wpf,Windows Runtime,Windows Phone 8.1,Win Universal App,当我尝试导航到自定义页面时,遇到TypeLoadException 这是基类: public abstract partial class MyBasePage : Page { // Some abstract methods and some View-level stuff } 另一类: public sealed class MyCustomPage : MyBasePage { public MyCustomPage() : base() {
public abstract partial class MyBasePage : Page
{
// Some abstract methods and some View-level stuff
}
另一类:
public sealed class MyCustomPage : MyBasePage
{
public MyCustomPage() : base()
{
// Some stuff
}
// Methods implementations
}
注意:我还尝试删除了抽象修饰符,用虚拟方法替换了抽象原型,虚拟方法只抛出NotImplementedException,因此在派生类中得到了相同的结果,但仍然得到了相同的TypeLoadException
这是我得到的信息:
找不到Windows运行时类型“Windows.Foundation”
这是StackTrace
at System.StubHelpers.WinRTTypeNameConverter.GetTypeFromWinRTTypeName(String typeName, Boolean& isPrimitive)
at System.StubHelpers.SystemTypeMarshaler.ConvertToManaged(TypeNameNative* pNativeType, Type& managedType)
at Windows.UI.Xaml.Controls.Frame.Navigate(Type sourcePageType, Object parameter)
[...]
我遗漏了什么吗?我想我可能在继承Page类时弄错了什么,但是我找不到错误,编译器也没有显示任何警告
谢谢你的帮助
塞尔吉奥
更新:看来在Windows应用商店应用程序中,XAML没有编译,UI是在运行时通过解析XAML生成的,所以实际上不可能继承XAML。
这样做是不可能的,我是否必须在两个不同的页面中复制/粘贴相同的XAML,或者根据上下文使用不同的方法创建一个页面,或者是否有其他方法在不同的页面上共享相同的UI?
我需要的是获得完全相同的UI,但对于两个不同的类,我需要不同的类型作为我的导航方法。不确定如果不编译,它是否会编译,但您是否更改了相关XAML文件中的页面类型?@KooKiz是的,XAML文件中的基类名称与其.cs文件中的名称相同,我的派生类没有XAML文件,它只是从基类继承并重写了一些方法。这可能就是问题所在。您应该尝试一个带有XAML文件的派生类,看看是否有相同的文件issue@KooKiz是的,但我尝试这样做的原因不是将相同的XAML复制并粘贴到两个不同的文件中,因为我需要在两个不同的页面中使用相同的UI。我更新了我的问题:使用模板控件自定义控件而不是页面/用户控件如何?