我了解 C# 代码片段和 .NET 程序集为模块化模板开发提供相同的功能。我们在 CME 中管理代码片段,在 Visual Studio 中管理汇编代码,但在模板生成器中使用相同的方式。
在代码方面,我可以创建一个 C# Code Fragment Template Building Block (TBB),例如:
var timeStamp = DateTime.Now.ToString("d MMM yyyy");
package.PushItem("timeStamp from fragment", package.CreateHtmlItem(timeStamp));
我还可以通过如下实现 ITemplate 来使用相同的代码创建一个 .NET 程序集模板构建块。
using System;
using Tridion.ContentManager.Templating;
using Tridion.ContentManager.Templating.Assembly;
namespace CreateAndBreakTemplates
{
[TcmTemplateTitle("Add Date to Package")]
public class AddDateToPackage : ITemplate
{
public void Transform(Engine engine, Package package)
{
var timeStamp = DateTime.Now.ToString("d MMM yyyy");
package.PushItem("timeStamp from assembly",
package.CreateHtmlItem(timeStamp));
}
}
}
文档解释说“ SDL Tridion 将代码片段插入到预定义类的预定义方法中”。看起来这个类实现了 ITemplate 并在下面添加了一些引用(我错过了什么吗?)。
程序集设置说明至少提到了这些 dll。
- Tridion.Common.dll
- Tridion.ContentManager.dll
- Tridion.ContentManager.Templating.dll
- Tridion.ContentManager.Publishing.dll
片段和程序集之间还有其他区别吗?您将如何在两者之间进行选择?