Pregunta

Tengo una bastante simple plantilla que necesito hacer una llamada a un método de.Sin embargo, NVelocity no parece para evaluar los parámetros del método, que en sí son NVelocity variables.Tome las siguientes NVelocity plantilla:

#if (--- CONDITION SNIPPED ---)
    <blockquote class="column span-4">
          I MADE IT!
    </blockquote>
#else
    <blockquote class="column span-4">
         $extensionMethods.TestMethod(${var1})
</blockquote>       
#end

En la plantilla anterior, $extensionMethods se pasa como una instancia de una clase y funciona de maravilla cuando pasan evaluado números (por ejemplo, $extensionMethods.TestMethod(4) funciona todo el tiempo).Sin embargo, el uso de $var1 causas de la totalidad de la cadena que se devuelve como es: $extensionMethods.TestMethod(${var1}).

Es allí una manera de pasar una variable a un método perezosamente para obtener la plantilla anterior para evaluar correctamente?

¿Fue útil?

Solución

Si usted está teniendo problemas, es probable que sea algo que ver con sus tipos de variables, o el método de la disponibilidad.He construido y probado el siguiente:

public class TestClass
{
    #region Methods
    public string DoSomething(string name)
    {
        return name.ToUpperInvariant();
    }

    public string DoSomethingElse(int age)
    {
        return (age*10).ToString();
    }
    #endregion
}

Y mi plantilla:

#set($myVar = "matt")
#set($myVar2 = 10)

Name: $test.DoSomething(${myVar})
Age: $test.DoSomethingElse(${myVar2})

Y el resultado:

Name: "MATT"
Age: 100

Podemos ver algo de código para los métodos de extensión?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top