Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#TBB(C#代码片段)中添加用户定义的方法?_C#_Tridion - Fatal编程技术网

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

如何在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

我正在创建一个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());
}

调试(“执行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代码片段中使用构造定义的:

    在编译C#代码片段时,这个用户定义的类被放置为Tridion创建的预定义类的嵌套类。查看这篇博客文章,了解关于C#代码片段编译、预定义类、tridion生成的方法以及理解tridion预定义类与C#代码片段中用户定义类的关系的详细信息

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


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

    能否提供一个指向文档页面的链接,您可以从该页面获取此信息?