Почему пользовательский резольвер SDL Tridion 2011 вызывается дважды при публикации компонента? - PullRequest
3 голосов
/ 27 марта 2012

У меня есть пользовательский резолвер, который применяется к элементам типа Публикация , StructureGroup , Страница и Компонент . Код работает, как и ожидалось, но я не знаю точно, когда код вызывается. Мой Tridion.ContentManager.config файл содержит следующую выдержку:

<resolving>
    <mappings>
        <clear/>
        <add itemType="Tridion.ContentManager.CommunicationManagement.Page">
            <resolvers>
                <add type="Tridion.ContentManager.Publishing.Resolving.PageResolver" assembly="Tridion.ContentManager.Publishing, Version=6.1.0.996, Culture=neutral, PublicKeyToken=360aac4d3354074b"/>
                <add type="UrbanCherry.Net.SDLTridion.CustomResolvers.DynamicBinaryLinkResolver" assembly="UrbanCherry.Net.SDLTridion.CustomResolvers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e7729a00ff9574fb"/>
            </resolvers>
        </add>
        <add itemType="Tridion.ContentManager.CommunicationManagement.PageTemplate">
            <resolvers>
                <add type="Tridion.ContentManager.Publishing.Resolving.PageTemplateResolver" assembly="Tridion.ContentManager.Publishing, Version=6.1.0.996, Culture=neutral, PublicKeyToken=360aac4d3354074b"/>
            </resolvers>
        </add>
        <add itemType="Tridion.ContentManager.ContentManagement.Component">
            <resolvers>
                <add type="Tridion.ContentManager.Publishing.Resolving.ComponentResolver" assembly="Tridion.ContentManager.Publishing, Version=6.1.0.996, Culture=neutral, PublicKeyToken=360aac4d3354074b"/>
                <add type="UrbanCherry.Net.SDLTridion.CustomResolvers.DynamicBinaryLinkResolver" assembly="UrbanCherry.Net.SDLTridion.CustomResolvers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e7729a00ff9574fb"/>
            </resolvers>
        </add>
        <add itemType="Tridion.ContentManager.CommunicationManagement.ComponentTemplate">
            <resolvers>
                <add type="Tridion.ContentManager.Publishing.Resolving.ComponentTemplateResolver" assembly="Tridion.ContentManager.Publishing, Version=6.1.0.996, Culture=neutral, PublicKeyToken=360aac4d3354074b"/>
            </resolvers>
        </add>
        <add itemType="Tridion.ContentManager.CommunicationManagement.Publication">
            <resolvers>
                <add type="Tridion.ContentManager.Publishing.Resolving.PublicationResolver" assembly="Tridion.ContentManager.Publishing, Version=6.1.0.996, Culture=neutral, PublicKeyToken=360aac4d3354074b"/>
                <add type="UrbanCherry.Net.SDLTridion.CustomResolvers.DynamicBinaryLinkResolver" assembly="UrbanCherry.Net.SDLTridion.CustomResolvers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e7729a00ff9574fb"/>
            </resolvers>
        </add>
        <add itemType="Tridion.ContentManager.CommunicationManagement.StructureGroup">
            <resolvers>
                <add type="Tridion.ContentManager.Publishing.Resolving.StructureGroupResolver" assembly="Tridion.ContentManager.Publishing, Version=6.1.0.996, Culture=neutral, PublicKeyToken=360aac4d3354074b"/>
                <add type="UrbanCherry.Net.SDLTridion.CustomResolvers.DynamicBinaryLinkResolver" assembly="UrbanCherry.Net.SDLTridion.CustomResolvers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e7729a00ff9574fb"/>
            </resolvers>
        </add>
        <add itemType="Tridion.ContentManager.ContentManagement.Category">
            <resolvers>
                <add type="Tridion.ContentManager.Publishing.Resolving.CategoryResolver" assembly="Tridion.ContentManager.Publishing, Version=6.1.0.996, Culture=neutral, PublicKeyToken=360aac4d3354074b"/>
            </resolvers>
        </add> 
    </mappings>
</resolving>

Когда я публикую Публикацию , StructureGroup или Страница , мой Custom Resolver вызывается один раз (что я и ожидал), однако при публикации Компонент ( Схема которого связан с одним Компонентным шаблоном , который создает Динамическое представление компонента ), пользовательский резолвер вызывается дважды.

Это ожидаемое поведение? Если нет, может кто-нибудь подсказать, почему мой Resolver вызывается во второй раз?

Ответы [ 2 ]

5 голосов
/ 27 марта 2012

Resolver вызывается один раз для компонента и один раз для каждого шаблона компонента, связанного со схемой компонента.Добавление дополнительного CT для этой схемы увеличило количество вызовов до трех.

Не ясно, является ли это ошибкой или по замыслу, но объясняется количество вызовов.Интересно, что Custom Resolver вызывается только один раз при отмене публикации компонента

1 голос
/ 05 марта 2013

Я заметил, что настраиваемый распознаватель вызывается для каждой цели публикации, которая находится "в области действия" для текущего действия публикации.

...