我打电话FindPagesWithCriteria(PageReference pageLink, PropertyCriteriaCollection criterias)
给注射DataFactory
,我正在NullReferenceException
接受DefaultPageCriteriaQueryService.GetProviderQueryService()
:
[NullReferenceException:对象引用未设置为对象的实例。]
EPiServer.Core.DefaultPageCriteriaQueryService.GetProviderQueryService(ContentProvider provider)+44
EPiServer.Core.DefaultPageCriteriaQueryService.FindPagesWithCriteriaInternal(PageReference pageLink,PropertyCriteriaCollection 标准,字符串语言分支,ILanguageSelector 选择器,FindPagesWithCriteriaDelegate findPagesDelegate ) +293
EPiServer.Core.DefaultPageCriteriaQueryService.FindPagesWithCriteria(PageReference pageLink, PropertyCriteriaCollection 标准, String languageBranch, ILanguageSelector 选择器) +124
EPiServer.DataFactory.FindPagesWithCriteria(PageReference pageLink, PropertyCriteriaCollection 标准) +115
...
我已经连接了 Episerver 符号服务器并逐步执行了代码,深入DefaultPageCriteriaQueryService
我可以看到ContentProvider
传递给GetProviderQueryService()
的为 null 导致 NRE。调用此方法的行是这样的:
case TypeOfSearch.Local:
return findPagesDelegate(pageLink, tempCriteria, languageBranch, selector, this.GetProviderQueryService(this._providerManager.ProviderMap.GetDefaultProvider()));
罪魁祸首是_providerManager.ProviderMap.GetDefaultProvider()
返回 null 因为_providerManager.ProviderMap
是空的。我以前从未遇到过这个问题,如果应该初始化 ProviderMap,我找不到任何相关信息。
为什么我会遇到这个问题?为什么我的 ProviderMap 是空的?我的 ProviderMap 应该有一个默认的提供者吗?