如何在C#TBB(C#代码片段)中添加用户定义的方法?

我正在创建一个C#TBB(C#代码片段)。 为此,我需要编写一个用户定义的方法。 我尝试使用。 如何在代码中访问用户定义的方法。 提前致谢。 请建议我解决这个问题的方法。

TOM.NET API参考提供以下示例:

<%@ 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()); } 

除上述内容外,还支持以下语法:

 <%@Import Namespace="..." %> 

将引号之间的命名空间导入代码片段。 您导入的任何类都必须存在于全局程序集缓存中。

 <%! ... %> 

声明要使用的其余代码片段的方法,常量和类。 声明不能包含字符串’%>’。 请注意,您创建的任何类只能在代码片段中引用。

 <%RunTemplate Template="tcm:1-184-2048" Class="Tridion.Templating.Examples.ExampleTemplateClass"%> 

运行特定的.NET程序集模板构建块,由Template属性中的URI标识。 当您上载.NET程序集时,此语句通常由SDL Tridion 2009本身生成,以提供对.NET程序集中特定类的访问。

 <%@Assembly Name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"%> 

插入对非标准.NET程序集的引用,该程序集必须存在于全局程序集缓存中。 使用完整的程序集名称。

这是文档参考链接 ,其中包含Nickol指向的示例。

请查看以下链接,了解有关在C#代码片段中创建函数和类的完整详细信息。

  1. function: https : //rcnitesh.wordpress.com/2015/04/23/functions-in-c-tbb/
    [有关包括代码示例的完整详细信息,请查看以上链接]

  2. 课程: https : //rcnitesh.wordpress.com/2015/04/24/creating-user-defined-classes-in-c-code-fragment/以下摘自上述博客:

使用以下构造在C#代码片段中定义类: <%! %> <%! %>

在编译C#代码片段时,此USER定义的类被放置为Tridion创建的PREDEFINED CLASS的NESTED CLASS。 查看此博客文章,详细了解C#Code Fragment编译和预定义类,tridion生成的方法,以及了解Tridion预定义类与C#代码片段中用户定义类的关系

如上所述,我们需要理解的是,C#代码片段中的用户定义类无法访问预定义变量,如:log,engine和package,因为这些变量实际上是在编译期间生成的预定义类中声明为Private。

[有关包括代码示例的完整详细信息,请查看以上链接]