2012-05-07 14 views

Respuesta

11

La referencia API TOM.NET ofrece el ejemplo siguiente:

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

Además de lo anterior, la siguiente sintaxis es compatible:

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

importa el espacio de nombres encerrado entre las comillas en el fragmento de código. Cualquier clase que importe debe estar presente en la memoria caché de ensamblaje global.

<%! ... %> 

Declara métodos, constantes y clases para el resto del fragmento de código que se va a utilizar. Las declaraciones no pueden contener la cadena '%>'. Tenga en cuenta que las clases que crea solo se pueden referenciar dentro del fragmento de código.

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

ejecuta un ensamblado .NET Plantilla del bloque específico, identificado por el URI en el atributo de la plantilla. Normalmente, SDL Tridion 2009 genera esta declaración cuando carga un ensamblado .NET para proporcionar acceso a una clase específica en el ensamblado .NET.

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

Inserta una referencia a un ensamblado .NET no estándar, que debe estar presente en la Caché de ensamblados global. Use el nombre completo del ensamble.

+0

Puede usted por favor proporcionar un enlace a la página de documentación de dónde sacó esto desde? –

3

Aquí está la documentación reference link con el ejemplo que señala Nickol.

1

Consulte estos enlaces a continuación para obtener detalles completos sobre la creación de funciones y las clases en un fragmento de código C#.

  1. Funciones: https://rcnitesh.wordpress.com/2015/04/23/functions-in-c-tbb/
    [Para los detalles completos, incluyendo ejemplos de código, comprobar el enlace de arriba]

  2. Clases: https://rcnitesh.wordpress.com/2015/04/24/creating-user-defined-classes-in-c-code-fragment/ A continuación se muestra un extracto del Blog arriba:

Las clases se definen dentro de un C# Co de Fragment usando la construcción: <%! %>.

Esta clase definida por el USUARIO se coloca como CLASE NEGADA de la CLASE PREDEFINIDA creada por Tridion al compilar el fragmento del Código C#. Consulte esta publicación en el blog para obtener detalles detallados sobre la compilación de Fragmentos del código C# y las clases predefinidas, métodos generados por tridion y la relación de la clase predefinida de Tridion con la clase definida por el usuario en un C# Fragmento de código

Dicho lo anterior, Es necesario entender que las clases definidas por el usuario en un Fragmento de código C# no pueden acceder a variables predefinidas como: registro, motor y paquete, ya que estas variables se declaran privadas en la clase predefinida generada durante la compilación.

[Para los detalles completos, incluyendo ejemplos de código, comprobar los enlaces de arriba]

Cuestiones relacionadas