【发布时间】:2018-07-25 13:55:41
【问题描述】:
无法将 lambda 转换为预期的委托,因为块中的某些返回类型未隐式转换为委托返回类型。
没有 DI
var chromeDriverService = ChromeDriverService.CreateDefaultService();
var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments(new List<string>() { "headless" });
ChromeDriver driver = new ChromeDriver(chromeDriverService, chromeOptions);
在 Startup.cs 中使用 DI
services.AddScoped<ChromeDriverService>((serviceProvider =>
{
return ChromeDriverService.CreateDefaultService();
}));
//**** errors here*****
services.AddScoped<ChromeOptions>((serviceProvider =>
{ return new ChromeOptions().AddArguments(new List<string>() { "headless" }); }));
// errors here******
// how would i pass the driver service & options
services.AddScoped<ChromeDriver>(
(serviceProvider =>
{
return new ChromeDriver(chromeDriverService,chromeOptions);
}));
我如何使它可以转换并将正确的选项传递给 chromeDriver ?
【问题讨论】:
-
.AddArguments(...);返回什么?是ChromeOptions的实例吗? -
除了
ChromeDriver之外,你还有依赖Chrome Options和ChromeDiverService的服务吗?如果是这样,您可能需要考虑仅注册ChromeDriver -
是的,也看到了 chromeoptions 的新闻
标签: c# asp.net-core lambda dependency-injection