NVelocity扩展方法ASP.NET webform

我想知道是否可以使用asp.net webforms和nvelocity的扩展方法。如果字符串值为null或为空,我想设置一些默认值。 .vm文件的示例:
    Example of my email body...

    Billable Status: $billableStatus.Evaluate()

    rest of my email body...
尝试扩展方法:
public static class Helper
{
    public static string Evaluate(this string value)
    {
        if (String.IsNullOrEmpty(value))
            return "Not Provided";
        else
            return value;
    }
}
还是有替代我正在努力实现的目标?     
已邀请:
我不认为NVelocity可以使用C#/ VB.NET语法糖来解析扩展方法。我所做的是在速度上下文中注册一个助手的实例:
var context = VelocityContext();
context.Put("helper", new Helper());
context.Put("billableStatus", "something");
...
然后在你的模板中:
$helper.Evaluate($billableStatus)
当然,你必须使你的助手非静态才能工作。     
我在过去遇到过类似的东西,我正在寻找更复杂,更有控制力的东西。我发现NVelocity确实提供了拦截方法和属性调用的方法,但为此你必须实现某些东西。为了制作自定义拦截器,您需要实现NVelocity.IDuck。例如     公共类MyClass:NVelocity.IDuck     {         公共对象GetInvoke(string propName)         {             ....         }         public object Invoke(string method,params object [] args)         {             ....         }         public void SetInvoke(string propName,object value)         {             ....         }     } 现在MyClass的任何实例都会拦截并将方法和属性调用传递给我们这三个函数实现,并让我们有机会解析并返回输出。您可能会注意到这三个函数签名,为了实现它们,我们可能需要一些反射,我们可以在可用的扩展类型上找到相应的方法并执行它们。如果需要,您可以阅读以下博客文章,了解有关这种方式的详细信息。 NVelocity和扩展方法     

要回复问题请先登录注册