Question

J'ai un modèle assez simple à partir duquel je dois effectuer un appel de méthode.Cependant, NVelocity ne semble pas évaluer les paramètres de la méthode qui sont eux-mêmes Variables de vitesse.Prenez le modèle NVelocity suivant :

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

Dans le modèle ci-dessus, $extensionMethods est transmis en tant qu'instance d'une classe et fonctionne à merveille lors de la transmission de nombres évalués (par ex. $extensionMethods.TestMethod(4) fonctionne à chaque fois).Cependant, en utilisant $var1 fait que la chaîne entière est renvoyée telle quelle : $extensionMethods.TestMethod(${var1}).

Existe-t-il un moyen de transmettre paresseusement une variable à une méthode pour que le modèle ci-dessus soit évalué correctement ?

Était-ce utile?

La solution

Si vous rencontrez des problèmes, cela est probablement dû à vos types de variables ou à la disponibilité de la méthode.J'ai construit et testé ce qui suit :

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

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

Et mon modèle :

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

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

Et le résultat :

Name: "MATT"
Age: 100

Pouvons-nous voir du code pour vos méthodes d'extension ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top