【发布时间】:2012-03-27 15:32:31
【问题描述】:
我有一个自定义解析器,它应用于 Publication、StructureGroup、Page 和 Component类型的项目>。代码按预期运行,但我不清楚何时调用代码。 我的 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>
当我发布 Publication、StructureGroup 或 Page 时,我的自定义解析器会被调用一次(这是我的预期),但是当我发布了一个 Component(其中的 Schema 链接到一个 Component Template,该模板生成 Dynamic Component Presentation)自定义解析器被调用两次。
这是预期的行为吗?如果没有,任何人都可以建议为什么我的解析器被第二次调用?
【问题讨论】:
-
有趣的是,组件不会也出现在页面上吧?
-
不,不在页面上。我尝试从所有项目类型中删除解析器,除了 Component 沿着相同的思路思考,但它仍然发生。我想知道它是否为组件调用一次,为与组件模式关联的每个 CT 调用一次。我现在要做一个新的 CT,看看它是否会被调用 3 次。
-
是的,这也是我想到的,让我知道你的测试结果
标签: tridion tridion-2011