Синтаксис NVelocity для вызовов методов с оцененными параметрами

StackOverflow https://stackoverflow.com/questions/3251185

  •  15-09-2020
  •  | 
  •  

Вопрос

У меня есть довольно простой шаблон, который мне нужно, чтобы позвонить по методу.Тем не менее, 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
.

Можем ли мы увидеть некоторый код для ваших методов расширения?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top