无参数构造函数错误

Parameterless Constructor error

您好,我正在 Global.ascx 中像这样初始化界面

private static SimpleMembershipInitializer _initializer;
private static object _initializerLock = new object();
private static bool _isInitialized;



public SimpleMembershipInitializer(IAccountHelper iAccountHelper)
{              
   _accountHelper = iAccountHelper;
   _accountHelper.SimpleMembershipInitializer();

}


#endregion
protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    SimpleInjector.SetupDependencyInjection();
    // Ensure ASP.NET Simple Membership is initialized only once per app start
    LazyInitializer.EnsureInitialized(ref _initializer, ref _isInitialized, ref _initializerLock);
}

但是我收到一个错误

The lazily-initialized type does not have a public, parameterless constructor.

我做错了什么?

或者,如果我用以下内容更改代码

public SimpleMembershipInitializer()
{                  
   _accountHelper = new AccountHelper();                 
   _accountHelper.SimpleMembershipInitializer();                                       
}

代码运行良好。

任何人都可以告诉我出现错误的代码有什么问题。

如有任何帮助,我们将不胜感激。

提前致谢

LazyInitializer.EnsureInitialized 需要您的 class 具有 public 无参数构造函数。如果您的 class 构造函数有参数,那么初始化程序不知道如何获取或实例化这些参数。

我推荐你使用依赖注入库来初始化你的依赖。