Estoy creando un C# TBB (fragmento de código C#). Para eso necesito escribir un método definido por el usuario. ¡Intenté crearlo usando <%! %>. Cómo acceder al método definido por el usuario en el código. Gracias por adelantado. Por favor sugiérame una forma de resolver este problema.Cómo agregar métodos definidos por el usuario en C# TBB (fragmento de código C#)?
Respuesta
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.
Aquí está la documentación reference link con el ejemplo que señala Nickol.
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#.
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]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]
- 1. ¿Cómo agregar dll de terceros en Tridion para C# TBB?
- 2. ¿Cómo funciona este fragmento de código C#?
- 3. Asesoramiento sobre una mejor forma de extender el contenedor C++ STL con métodos definidos por el usuario
- 4. Conversiones definidas por el usuario en C++
- 5. Cómo obtener el usuario que inició una acción de publicación en un SDL Tridion C# TBB
- 6. Métodos definidos fuera de clase?
- 7. Funciones de código C# encargo Fragmento
- 8. Ayúdame a entender el fragmento de código en C#
- 9. static_cast para tipos definidos por el usuario
- 10. RVO para los tipos definidos por el usuario complejas en C++
- 11. elemento de azar por pesos definidos por el usuario
- 12. C++ agregar usuario de Linux
- 13. C++ 0x, literales definidos por el usuario con el operador amigo ""()
- 14. Cómo obtener el nombre del método automáticamente en el fragmento de código en C# 4.0
- 15. Métodos de llamada C del código C++/Java/C#?
- 16. base de datos “tipos" definidos por el usuario en pgAdmin
- 17. ¿Cómo se agregan propiedades/valores definidos por el usuario en el archivo de manifiesto de Android?
- 18. Cómo perfil de métodos C# por segundo?
- 19. ¿Por qué Enumerable.Cast no utiliza moldes definidos por el usuario?
- 20. Usando el grupo de métodos C# ejecuta el código
- 21. Formateo de parámetros literales de un fragmento de código C#
- 22. ¿Soporta MySQL tipos de datos definidos por el usuario
- 23. ¿Cómo crearía y almacenaría campos personalizados definidos por el usuario en una base de datos SQL?
- 24. usando setw con operadores ostream definidos por el usuario
- 25. Evitar el código de usuario llamando a Reflection en C#
- 26. Cómo analizar/analizar simple código C/C++ de C# para obtener una lista de métodos
- 27. Cómo escribir excepciones definidas por el usuario en C#?
- 28. Analizando el código C# (como cadena) e insertando métodos adicionales
- 29. Los argumentos literales definidos por el usuario no son constexpr?
- 30. en C# son métodos privados por defecto?
Puede usted por favor proporcionar un enlace a la página de documentación de dónde sacó esto desde? –