بناء جملة NVelocity لاستدعاء الأساليب ذات المعلمات التي تم تقييمها

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

  •  15-09-2020
  •  | 
  •  

سؤال

لدي قالب بسيط إلى حد ما وأحتاج إلى إجراء استدعاء طريقة منه.ومع ذلك، لا يبدو أن 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