NVelocity sintaxe para a chamada de métodos com parâmetros avaliados
Pergunta
Eu tenho uma forma bastante simples modelo que eu preciso para fazer uma chamada de método.No entanto, NVelocity não parece avaliar os parâmetros do método que, em si, são NVelocity variáveis.Tome as seguintes NVelocity modelo:
#if (--- CONDITION SNIPPED ---)
<blockquote class="column span-4">
I MADE IT!
</blockquote>
#else
<blockquote class="column span-4">
$extensionMethods.TestMethod(${var1})
</blockquote>
#end
No modelo acima, $extensionMethods
é passado como uma instância de uma classe e funciona maravilhosamente quando passar na avaliado números (por exemplo, $extensionMethods.TestMethod(4)
funciona cada vez).No entanto, usando $var1
faz com que toda a cadeia de caracteres a serem retornados como-é: $extensionMethods.TestMethod(${var1})
.
Existe uma maneira de passar uma variável para um método preguiçosamente para obter o modelo acima para avaliar corretamente?
Solução
Se você estiver tendo problemas, é provável que seja algo a ver com sua tipos de variável, ou o método de disponibilidade.Eu já construído e testado o seguinte:
public class TestClass
{
#region Methods
public string DoSomething(string name)
{
return name.ToUpperInvariant();
}
public string DoSomethingElse(int age)
{
return (age*10).ToString();
}
#endregion
}
E o meu modelo:
#set($myVar = "matt")
#set($myVar2 = 10)
Name: $test.DoSomething(${myVar})
Age: $test.DoSomethingElse(${myVar2})
E a saída:
Name: "MATT"
Age: 100
Podemos ver algum código para seu métodos de extensão?