带有参数的惰性初始化错误
Lazy initialization error with parameter
我正在编写一个 MVC 互联网应用程序并且有一个关于延迟初始化的问题。
这是我在惰性初始化之前的工作代码:
声明:
private ValidationService validationService;
初始化:
validationService = new ValidationService(genericMultipleRepository);
这是我正在尝试的代码:
声明:
private Lazy<ValidationService> validationService;
初始化:
validationService = new Lazy<ValidationService>(genericMultipleRepository);
这里是错误:
Error 125 The best overloaded method match for
'System.Lazy.Lazy(System.Threading.LazyThreadSafetyMode)'
has some invalid
arguments
我已经查看了 Lazy<T> constructor documentation
,但我看不出有什么问题。
lazy 的构造函数需要一个 Func
returns 指定的 ValidationService
类型:
validationService = new Lazy<ValidationService>
( () => new ValidationService(genericMultipleRepository)
);
这相当于:
validationService = new Lazy<ValidationService>
( SomeMethod
);
private ValidationService SomeMethod()
{
return new ValidationService(this.genericMultipleRepository);
}
请注意,您不能像使用 lambda 表达式推断的那样传递参数 genericMultipleRepository
。
我正在编写一个 MVC 互联网应用程序并且有一个关于延迟初始化的问题。
这是我在惰性初始化之前的工作代码:
声明:
private ValidationService validationService;
初始化:
validationService = new ValidationService(genericMultipleRepository);
这是我正在尝试的代码:
声明:
private Lazy<ValidationService> validationService;
初始化:
validationService = new Lazy<ValidationService>(genericMultipleRepository);
这里是错误:
Error 125 The best overloaded method match for 'System.Lazy.Lazy(System.Threading.LazyThreadSafetyMode)' has some invalid arguments
我已经查看了 Lazy<T> constructor documentation
,但我看不出有什么问题。
lazy 的构造函数需要一个 Func
returns 指定的 ValidationService
类型:
validationService = new Lazy<ValidationService>
( () => new ValidationService(genericMultipleRepository)
);
这相当于:
validationService = new Lazy<ValidationService>
( SomeMethod
);
private ValidationService SomeMethod()
{
return new ValidationService(this.genericMultipleRepository);
}
请注意,您不能像使用 lambda 表达式推断的那样传递参数 genericMultipleRepository
。