すべてのテンプレートに対してDisplayOptionsを実装するには、ContentAreaRendererをオーバーライドする必要があります。AreaContentRenderer CtontはIContentAreaItemAttributeAssemblerを受け取りません
すべてのテンプレートに影響するように、ContentAreaで表示するにはdisplayオプションが必要です。
アイブ氏は、私は私があるため、ベースコンストラクタの問題を取得するタイプにはない変更するとエラー が 「ContentFragmentAttributeAssemblerではなく、時代遅れの使用IContentAreaItemAttributeAssemblerである」取得 うまくいかない何 https://world.episerver.com/blogs/Anders-Hattestad/Dates/2014/8/Extending-ContentArea-to-use-custom-CSS-class-on-child-elements/
このソリューションを実装しようとしましたIContentAreaItemAttributeAssemblerエン取るのではなく時代遅れContentFragmentAttributeAssembler
あなたの属性を再配置する必要があるかもしれpublic class ContentAreaRendererWithDisplayOptionWithCss : ContentAreaRenderer
{
private readonly DisplayOptions _displayOptionsOwn;
private readonly IContentRepository _contentRepositoryOwn;
public ContentAreaRendererWithDisplayOptionWithCss()
: this(
ServiceLocator.Current.GetInstance<IContentRenderer>(),
ServiceLocator.Current.GetInstance<TemplateResolver>(),
ServiceLocator.Current.GetInstance<IContentAreaItemAttributeAssembler>(),
ServiceLocator.Current.GetInstance<IContentRepository>(),
ServiceLocator.Current.GetInstance<DisplayOptions>())
{
}
public ContentAreaRendererWithDisplayOptionWithCss(
IContentRenderer contentRenderer,
TemplateResolver templateResolver,
IContentAreaItemAttributeAssembler attributeAssembler,
IContentRepository contentRepository,
DisplayOptions displayOptions)
: base(contentRenderer,
templateResolver,
attributeAssembler,
contentRepository,
displayOptions)
{
_displayOptionsOwn = displayOptions;
_contentRepositoryOwn = contentRepository;
}
}