本文介绍了'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和其他工具。

这篇关于&#39;MvxWpfSetup&lt;App&>;必须是具有公共无参数构造函数的非抽象类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 19:56