更新到Glass.Mapper.Sc 3.2.3.50后,我得到:
找不到数据映射器来处理属性AbstractPropertyConfiguration属性:Regions类型:[type] .IEventSearch程序集:[assembly],Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null
第23行:
Line 21: //create a context
Line 22: Context context = Context.Create(resolver);
Line 23: context.Load(new IConfigurationLoader[]
Line 24: {
Line 25: new EventSearchMap().Load(),
整个方法:
public void Process(PipelineArgs args)
{
//create the resolver
DependencyResolver resolver = DependencyResolver.CreateStandardResolver();
//install the custom services
var config = new Config();
resolver.Container.Install(new SitecoreInstaller(config));
//create a context
Context context = Context.Create(resolver);
context.Load(new IConfigurationLoader[]
{
new EventSearchMap().Load(),
new RegionMap().Load(),
new MunicipalityMap().Load(),
new SearchMap().Load(),
new PageMap().Load(),
new HeaderMap().Load(),
new SectionMenuMap().Load(),
new BreadcrumbMap().Load(),
new NavigationMap().Load(),
new SitemapMap().Load()
});
}
在这里触发:
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<pipelines>
<initialize>
<processor type="[Type].GlassMapper, [assembly]" />
</initialize>
</pipelines>
</sitecore>
</configuration>
接口:IEventSearch
[SitecoreType]
public interface IEventSearch : ISitecoreItem
{
IEnumerable<IRegion> Regions { get; set; }
IEnumerable<IMunicipality> Municipalities { get; set; }
}
EventSearchMap类:
public class EventSearchMap
{
public SitecoreFluentConfigurationLoader Load()
{
var loader = new SitecoreFluentConfigurationLoader();
SitecoreType<IEventSearch> type = loader.Add<IEventSearch>().AutoMap();
type.Delegate(x => x.Regions).GetValue(GetRegions);
type.Delegate(x => x.Municipalities).GetValue(GetMunicipalities);
return loader;
}
private IEnumerable<IMunicipality> GetMunicipalities(SitecoreDataMappingContext arg)
{
var municipalities = new List<IMunicipality>();
foreach (IRegion region in GetRegions(arg))
{
region.Municipalities.ForEach(municipalities.Add);
}
return municipalities.OrderBy(x => x.Title, StringComparer.CurrentCultureIgnoreCase);
}
private IEnumerable<IRegion> GetRegions(SitecoreDataMappingContext arg)
{
var context = new Context();
return from region in context.EventSearchPage.Children
select arg.Service.Cast<IRegion>(region);
}
}
答案 0 :(得分:3)
你的评论迈克尔,请把我送上正确的道路。
解决方案是将Glass.Mapper.Sc.CastleWindsor更新为3.3.0.25。 我在3.2.1.23。
但我之前尝试过:
PM> Update-Package Glass.Mapper.Sc.CastleWindsor
No updates available for 'Glass.Mapper.Sc.CastleWindsor' in project 'Core'.
但是你可以看到它说“没有可用的更新”。
解决方案是:
Install-Package Glass.Mapper.Sc.CastleWindsor -version 3.3.0.25