평가된 매개변수로 메소드를 호출하기 위한 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
클래스의 인스턴스로 전달되며 평가된 숫자를 전달할 때 훌륭하게 작동합니다(예: $extensionMethods.TestMethod(4)
매번 작동합니다).그러나 $var1
전체 문자열이 있는 그대로 반환됩니다. $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
확장 메서드에 대한 일부 코드를 볼 수 있나요?
제휴하지 않습니다 StackOverflow