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?

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top