如何在C#TBB(C#代码片段)中添加用户定义的方法?
我正在创建一个C#TBB(C#代码片段)。为此,我需要编写一个用户定义的方法。我试着用它来创建它。如何访问代码中的用户定义方法。提前谢谢。请为我推荐一种解决此问题的方法。TOM.NET API参考提供了以下示例:如何在C#TBB(C#代码片段)中添加用户定义的方法?,c#,tridion,C#,Tridion,我正在创建一个C#TBB(C#代码片段)。为此,我需要编写一个用户定义的方法。我试着用它来创建它。如何访问代码中的用户定义方法。提前谢谢。请为我推荐一种解决此问题的方法。TOM.NET API参考提供了以下示例: <%@ Import Namespace="Tridion.ContentManager.Publishing"%> <%! private string ExtraString() { return "Something added by the C# te
<%@ Import Namespace="Tridion.ContentManager.Publishing"%>
<%!
private string ExtraString()
{
return "Something added by the C# template";
}
%>
log.Debug("Executing C# template");
if (engine.RenderMode == RenderMode.Publish)
{
package.GetByName(Package.OutputName).AppendToStringValue(ExtraString());
}
调试(“执行C#模板”);
if(engine.RenderMode==RenderMode.Publish)
{
package.GetByName(package.OutputName).AppendToStringValue(ExtraString());
}
除上述内容外,还支持以下语法:
<%@Import Namespace="..." %>
将括在引号之间的命名空间导入代码片段。导入的任何类都必须存在于全局程序集缓存中
<%! ... %>
声明代码片段其余部分要使用的方法、常量和类。声明不能包含字符串“%”。请注意,您创建的任何类只能在代码片段中引用
<%RunTemplate Template="tcm:1-184-2048" Class="Tridion.Templating.Examples.ExampleTemplateClass"%>
运行特定的.NET程序集模板构建块,该构建块由模板属性中的URI标识。当您上载.NET程序集时,此语句通常由SDL Tridion 2009本身生成,以提供对.NET程序集中特定类的访问
<%@Assembly Name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"%>
插入对非标准.NET程序集的引用,该程序集必须存在于全局程序集缓存中。使用完整的程序集名称 这是Nickol指向的示例文档。查看以下链接,了解在C代码片段中创建函数和类的完整详细信息
[有关包括代码示例在内的完整详细信息,请查看上述链接]
在编译C#代码片段时,这个用户定义的类被放置为Tridion创建的预定义类的嵌套类。查看这篇博客文章,了解关于C#代码片段编译、预定义类、tridion生成的方法以及理解tridion预定义类与C#代码片段中用户定义类的关系的详细信息
如上所述,我们需要了解的是,C#代码片段中的用户定义类无法访问预定义变量,如:log、engine和package,因为这些变量实际上在编译期间生成的预定义类中声明为Private
[有关包括代码示例在内的完整详细信息,请查看上述链接]能否提供一个指向文档页面的链接,您可以从该页面获取此信息?