无参数构造函数错误

时间:2016-11-02 03:19:41

标签: c# .net constructor interface global-asax

您好我正在像这样

在Global.ascx中初始化界面
List<Book> bookList = isbnList.parallelStream()
    .map(isbn -> {
        try {
            List<String> pageContents = getUrlContents(webLink + isbn);
            return new Book(
                parseBookTitle(pageContents),
                isbn,
                parseRank(pageContents)
            );
        } catch (IOException ex) {
            throw new RuntimeException(ex);
        }
    }).collect(Collectors.toList());

但我收到了错误

  

lazily-initialized类型没有公共的无参数构造函数。

我在这里做错了什么?

或者,如果我使用以下

更改代码
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);
}

代码工作正常。

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

任何帮助将不胜感激。

提前致谢

1 个答案:

答案 0 :(得分:1)

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

我建议您使用依赖注入库来初始化依赖项。