문제

메서드 호출을 수행하는 데 필요한 매우 간단한 템플릿이 있습니다.그러나 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

확장 메서드에 대한 일부 코드를 볼 수 있나요?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top