【问题标题】:How to add user defined methods in C# TBB(C# code fragment)?如何在 C# TBB(C# 代码片段)中添加用户定义的方法?
【发布时间】:2012-05-15 16:32:51
【问题描述】:

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

【问题讨论】:

    标签: c# tridion


    【解决方案1】:

    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 程序集的引用,该程序集必须存在于全局程序集缓存中。使用完整的程序集名称。

    【讨论】:

    • 您能否提供一个指向您获得此文件的文档页面的链接?
    【解决方案2】:

    这是reference link 的文档,其中包含 Nickol 所指的示例。

    【讨论】:

      【解决方案3】:

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

      1. 功能: 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# 代码片段中使用以下结构定义:&lt;%! %&gt;

      在编译 C# 代码片段时,这个 USER 定义的类被放置为 Tridion 创建的 PREDEFINED CLASS 的 NESTED CLASS。查看这篇博文,深入了解 C# 代码片段编译和预定义类、tridion 生成的方法以及了解 Tridion 的预定义类与 C# 代码片段中用户定义类的关系

      上面说了,我们需要了解的是,C#代码片段中的用户定义的类不能访问预定义的变量,比如:log、engine、package,因为这些变量实际上是在生成的Predefined类中声明为Private的。编译。

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

      【讨论】:

        猜你喜欢
        • 2015-07-11
        • 2023-01-09
        • 1970-01-01
        • 1970-01-01
        • 2011-08-05
        • 2012-05-08
        • 1970-01-01
        • 1970-01-01
        • 2017-07-09
        相关资源
        最近更新 更多