我正在尝试将我的 Kentico Cloud SDK 从 v7 升级到 v10。在我刚刚创建 DeliveryClient 的新实例以构建我的站点 url 的服务以解析然后将其传递给我的 CustomContentLinkUrlResolver 例如
services.AddSingleton<NavigationProvider>(c => new NavigationProvider(new DeliveryClient(deliveryOptions) {
CodeFirstModelProvider = { TypeProvider = new CustomTypeProvider() }
}, cache));
services.AddSingleton<IDeliveryClient>(c => new CachedDeliveryClient(projectOptions, cache)
{
CodeFirstModelProvider = { TypeProvider = new CustomTypeProvider() },
ContentLinkUrlResolver = new CustomContentLinkUrlResolver(c.GetRequiredService<NavigationProvider>())
});
所以我有这个循环依赖,其中 DeliveryClient 依赖于 CustomContentLinkUrlResolver,而 CustomContentLinkUrlResolver 又依赖于 DeliveryClient。
令人沮丧的部分是 ResolveLinkUrl(ContentLink link) 方法没有我需要解析 url 的信息,因为 url 是由 ContentLink 中不可用的项目的分类定义的,这意味着我必须再次查找该项目得到分类。
我不知道如何绕过依赖 DeliveryClient 的 CustomContentLinkUrlResolver。