Синтаксис NVelocity для вызовов методов с оцененными параметрами
Вопрос
У меня есть довольно простой шаблон, который мне нужно, чтобы позвонить по методу.Тем не менее, NVelocity не оценивает параметры метода, которые самим являются переменными NVelocity .Возьмите следующий шаблон NVelocity:
#if (--- CONDITION SNIPPED ---)
<blockquote class="column span-4">
I MADE IT!
</blockquote>
#else
<blockquote class="column span-4">
$extensionMethods.TestMethod(${var1})
</blockquote>
#end
.
В вышеупомянутом шаблоне $extensionMethods
передается как экземпляр класса и работает удивительно при прохождении в оценке чисел (E.g. $extensionMethods.TestMethod(4)
работает каждый раз).Однако использование $var1
вызывает возвращение всей строки AS-IS: $extensionMethods.TestMethod(${var1})
.
Есть ли способ проходить переменную к методу лениво, чтобы получить вышеупомянутый шаблон, чтобы правильно оценить?
Решение
Если у вас возникли проблемы, скорее всего, что-то связано с вашими вариантами переменной или доступностью метода.Я построил и проверил следующее:
public class TestClass
{
#region Methods
public string DoSomething(string name)
{
return name.ToUpperInvariant();
}
public string DoSomethingElse(int age)
{
return (age*10).ToString();
}
#endregion
}
.
и мой шаблон:
#set($myVar = "matt")
#set($myVar2 = 10)
Name: $test.DoSomething(${myVar})
Age: $test.DoSomethingElse(${myVar2})
.
и выход:
Name: "MATT"
Age: 100
.
Можем ли мы увидеть некоторый код для ваших методов расширения?