本文介绍了';MvxWpfSetup<;App&>;必须是具有公共无参数构造函数的非抽象类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试遵循此视频结尾的代码here,但我在1:11:10标记附近遇到此错误:
error CS0310: 'MvxWpfSetup<App>' must be a non-abstract type with a public parameterless constructor in order to use it as parameter 'TMvxSetup' in the generic type or method 'MvxSetupExtensions.RegisterSetupType<TMvxSetup>(object, params Assembly[])'
我真的不知道哪些代码相关,但这是给出错误的文件:
using MvvmCross.Core;
using MvvmCross.Platforms.Wpf.Core;
using MvvmCross.Platforms.Wpf.Views;
namespace MvxStarter.Wpf
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : MvxApplication
{
protected override void RegisterSetup()
{
this.RegisterSetupType<MvxWpfSetup<MvxStarter.Core.App>>();
}
}
}
这一节我看了好几遍,我非常肯定我掌握了他的一模一样的东西。我甚至下载了他的源代码,但我无法打开项目,所以我复制并粘贴了所有代码,但我仍然收到这个错误。我该怎么办?如果你告诉我要发布什么,我可以发布更多相关的代码。我不知道此错误是什么意思,我在网上找不到任何有关它的信息。
编辑:我尝试遵循官方文档示例项目,但在完全相同的行上得到完全相同的错误。我的安装有问题吗?https://www.mvvmcross.com/documentation/tutorials/tipcalc/the-core-projecthttps://www.mvvmcross.com/documentation/tutorials/tipcalc/a-wpf-ui-project
推荐答案
需要创建Setup类,以便代码变为。使用MvvmCross.Core;使用MvvmCross.Platforms.Wpf.Core;
using MvvmCross.Platforms.Wpf.Views;
namespace MvxStarter.Wpf
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : MvxApplication
{
protected override void RegisterSetup()
{
this.RegisterSetupType<Setup>();
}
}
}
则安装程序变为
namespace MvxStarter.Wpf
{
public class Setup : MvxWpfSetup<Core.App>
{
protected override ILoggerProvider CreateLogProvider()
{
return new SerilogLoggerProvider();
}
protected override ILoggerFactory CreateLogFactory()
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.CreateLogger();
return new SerilogLoggerFactory();
}
}
}
或类似。这使用了Nuget Serilog和其他工具。
这篇关于';MvxWpfSetup<;App&>;必须是具有公共无参数构造函数的非抽象类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!