1

将 AngleSharp 从 0.9.6 升级到 0.9.9 我这行代码不再编译:

return configuration.With(LoaderService(new[] { requester }));

它抱怨LoaderService在当前上下文中不存在。那么发生了LoaderService什么?有替代品吗?它是否仍然存在但只是在其他地方?

4

1 回答 1

1

好问题。很抱歉迟到了,但即使你可能已经解决了你的问题,其他人也很难弄清楚。

LoaderService本质上只是创建加载器的助手。但是,为任何创造小东西的东西提供服务将是矫枉过正,而且规模不大。AngleSharp.Core 也需要定义所有这些。因此,引入了一种通用机制,允许通过Func<IBrowsingContext, TService>.

但是,为了解决您的一段代码,我想下面的行可以解决问题:

return configuration.WithDefaultLoader(requesters: requester);

这会使用默认选项(选项涉及一些中间件等)注册默认加载程序创建者服务(一个用于文档,一个用于文档内的资源)。

在引擎盖下(除了其他一些事情)正在发生以下情况:

// just one example, config.Filter is created based on the passed in options
return configuration.With<IDocumentLoader>(ctx => new DocumentLoader(ctx, config.Filter));
于 2017-12-11T19:31:47.410 回答