在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → c# 模版引擎(NVelocity)用法 例子源码下载

c# 模版引擎(NVelocity)用法 例子源码下载

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:0.94M
  • 下载次数:13
  • 浏览次数:269
  • 发布时间:2014-07-18
  • 实例类别:C#语言基础
  • 发 布 人:crazycode
  • 文件格式:.zip
  • 所需积分:2
 相关标签: C# 模版 引擎

实例介绍

【实例简介】NVelocity用法实例
【实例截图】

【核心代码】


namespace NVelocity.App
{
    using System;
    using System.IO;

    using Commons.Collections;
    using Context;
    using Exception;
    using Runtime;
    using Runtime.Log;

    /// <summary> <p>
    /// This class provides a separate new-able instance of the
    /// Velocity template engine.  The alternative model for use
    /// is using the Velocity class which employs the singleton
    /// model.
    /// </p>
    /// <p>Velocity will call
    /// the parameter-less Init() at the first use of this class
    /// if the Init() wasn't explicitly called.  While this will
    /// ensure that Velocity functions, it probably won't
    /// function in the way you intend, so it is strongly recommended that
    /// you call an Init() method yourself if you use the default constructor.
    /// </p>
    /// 
    /// </summary>
    /// <version>  $Id: VelocityEngine.java 687177 2008-08-19 22:00:32Z nbubna $
    /// </version>
    public class VelocityEngine
    {
        /// <summary> Set an entire configuration at once. This is
        /// useful in cases where the parent application uses
        /// the ExtendedProperties class and the velocity configuration
        /// is a subset of the parent application's configuration.
        /// 
        /// </summary>
        /// <param name="configuration">*
        /// </param>
        public virtual ExtendedProperties ExtendedProperties
        {
            set
            {
                ri.Configuration = value;
            }

        }
        /// <summary> Returns a convenient LogMessage instance that wraps the current LogChute.
        /// Use this to Log Error messages. It has the usual methods you'd expect.
        /// </summary>
        /// <returns> A Log object.
        /// </returns>
        /// <since> 1.5
        /// </since>
        virtual public Log Log
        {
            get
            {
                return ri.Log;
            }

        }
        private RuntimeInstance ri = new RuntimeInstance();


        /// <summary>  Init-less CTOR</summary>
        public VelocityEngine()
        {
            // do nothing
        }

        /// <summary>  CTOR that invokes an Init(String), initializing
        /// the engine using the properties file specified
        /// 
        /// </summary>
        /// <param name="propsFilename">name of properties file to Init with
        /// </param>
        /// <throws>  Exception </throws>
        /// <since> 1.5
        /// </since>
        public VelocityEngine(string propsFilename)
        {
            ri.Init(propsFilename);
        }

        /// <summary>  CTOR that invokes an Init(String), initializing
        /// the engine using the Properties specified
        /// 
        /// </summary>
        /// <param name="p">name of properties  to Init with
        /// </param>
        /// <throws>  Exception </throws>
        /// <since> 1.5
        /// </since>

        public VelocityEngine(ExtendedProperties p)
        {
            ri.Init(p);
        }

        /// <summary>  Initialize the Velocity runtime engine, using the default
        /// properties of the Velocity distribution
        /// </summary>
        /// <throws>  Exception </throws>
        public virtual void Init()
        {
            ri.Init();
        }

        /// <summary>  Initialize the Velocity runtime engine, using default properties
        /// plus the properties in the properties file passed in as the arg
        /// 
        /// </summary>
        /// <param name="propsFilename">file containing properties to use to Initialize
        /// the Velocity runtime
        /// </param>
        /// <throws>  Exception </throws>
        public virtual void Init(string propsFilename)
        {
            ri.Init(propsFilename);
        }

        /// <summary>  Initialize the Velocity runtime engine, using default properties
        /// plus the properties in the passed in java.util.Properties object
        /// 
        /// </summary>
        /// <param name="p"> Proprties object containing initialization properties
        /// </param>
        /// <throws>  Exception </throws>
        /// <summary> 
        /// </summary>

        public virtual void Init(ExtendedProperties p)
        {
            ri.Init(p);
        }

        /// <summary> Set a Velocity Runtime property.
        /// 
        /// </summary>
        /// <param name="key">
        /// </param>
        /// <param name="value">
        /// </param>
        public virtual void SetProperty(string key, object value)
        {
            ri.SetProperty(key, value);
        }

        /// <summary> Add a Velocity Runtime property.
        /// 
        /// </summary>
        /// <param name="key">
        /// </param>
        /// <param name="value">
        /// </param>
        public virtual void AddProperty(string key, object value)
        {
            ri.AddProperty(key, value);
        }

        /// <summary> Clear a Velocity Runtime property.
        /// 
        /// </summary>
        /// <param name="key">of property to clear
        /// </param>
        public virtual void ClearProperty(string key)
        {
            ri.ClearProperty(key);
        }

        /// <summary>  Get a Velocity Runtime property.
        /// 
        /// </summary>
        /// <param name="key">property to retrieve
        /// </param>
        /// <returns> property value or null if the property
        /// not currently set
        /// </returns>
        public virtual object GetProperty(string key)
        {
            return ri.GetProperty(key);
        }

        /// <summary>  renders the input string using the context into the output writer.
        /// To be used when a template is dynamically constructed, or want to use
        /// Velocity as a token replacer.
        /// 
        /// </summary>
        /// <param name="context">context to use in rendering input string
        /// </param>
        /// <param name="out"> Writer in which to render the output
        /// </param>
        /// <param name="logTag"> string to be used as the template name for Log
        /// messages in case of Error
        /// </param>
        /// <param name="instring">input string containing the VTL to be rendered
        /// 
        /// </param>
        /// <returns> true if successful, false otherwise.  If false, see
        /// Velocity runtime Log
        /// </returns>
        /// <throws>  ParseErrorException The template could not be parsed. </throws>
        /// <throws>  MethodInvocationException A method on a context object could not be invoked. </throws>
        /// <throws>  ResourceNotFoundException A referenced resource could not be loaded. </throws>
        /// <throws>  IOException While rendering to the writer, an I/O problem occured. </throws>

        public virtual bool Evaluate(IContext context, TextWriter writer, string logTag, string instring)
        {
            return ri.Evaluate(context, writer, logTag, instring);
        }

        /// <summary>  Renders the input reader using the context into the output writer.
        /// To be used when a template is dynamically constructed, or want to
        /// use Velocity as a token replacer.
        /// 
        /// </summary>
        /// <param name="context">context to use in rendering input string
        /// </param>
        /// <param name="writer"> Writer in which to render the output
        /// </param>
        /// <param name="logTag"> string to be used as the template name for Log messages
        /// in case of Error
        /// </param>
        /// <param name="reader">Reader containing the VTL to be rendered
        /// 
        /// </param>
        /// <returns> true if successful, false otherwise.  If false, see
        /// Velocity runtime Log
        /// </returns>
        /// <throws>  ParseErrorException The template could not be parsed. </throws>
        /// <throws>  MethodInvocationException A method on a context object could not be invoked. </throws>
        /// <throws>  ResourceNotFoundException A referenced resource could not be loaded. </throws>
        /// <throws>  IOException While reading from the reader or rendering to the writer, </throws>
        /// <summary>                     an I/O problem occured.
        /// </summary>
        /// <since> Velocity v1.1
        /// </since>

        public virtual bool Evaluate(IContext context, TextWriter writer, string logTag, TextReader reader)
        {
            return ri.Evaluate(context, writer, logTag, reader);
        }


        /// <summary> Invokes a currently registered Velocimacro with the params provided
        /// and places the rendered stream into the writer.
        /// <br>
        /// Note : currently only accepts args to the VM if they are in the context.
        /// 
        /// </summary>
        /// <param name="vmName">name of Velocimacro to call
        /// </param>
        /// <param name="logTag">string to be used for template name in case of Error. if null,
        /// the vmName will be used
        /// </param>
        /// <param name="params">keys for args used to invoke Velocimacro, in java format
        /// rather than VTL (eg  "foo" or "bar" rather than "$foo" or "$bar")
        /// </param>
        /// <param name="context">Context object containing data/objects used for rendering.
        /// </param>
        /// <param name="writer"> Writer for output stream
        /// </param>
        /// <returns> true if Velocimacro exists and successfully invoked, false otherwise.
        /// </returns>
        /// <throws>  IOException While rendering to the writer, an I/O problem occured. </throws>

        public virtual bool InvokeVelocimacro(string vmName, string logTag, string[] parameters, IContext context, TextWriter writer)
        {
            return ri.InvokeVelocimacro(vmName, logTag, parameters, context, writer);
        }

        /// <summary>  merges a template and puts the rendered stream into the writer
        /// 
        /// </summary>
        /// <param name="templateName">name of template to be used in merge
        /// </param>
        /// <param name="encoding">encoding used in template
        /// </param>
        /// <param name="context"> filled context to be used in merge
        /// </param>
        /// <param name="writer"> writer to write template into
        /// 
        /// </param>
        /// <returns> true if successful, false otherwise.  Errors
        /// logged to velocity Log
        /// </returns>
        /// <throws>  ResourceNotFoundException </throws>
        /// <throws>  ParseErrorException </throws>
        /// <throws>  MethodInvocationException </throws>
        /// <throws>  Exception </throws>
        /// <summary> 
        /// </summary>
        /// <since> Velocity v1.1
        /// </since>

        public virtual bool MergeTemplate(string templateName, string encoding, IContext context, TextWriter writer)
        {
            Template template = ri.GetTemplate(templateName, encoding);

            if (template == null)
            {
                string msg = "VelocityEngine.mergeTemplate() was unable to load template '"   templateName   "'";
                Log.Error(msg);
                throw new ResourceNotFoundException(msg);
            }
            else
            {
                template.Merge(context, writer);
                return true;
            }
        }

        /// <summary>  Returns a <code>Template</code> from the Velocity
        /// resource management system.
        /// 
        /// </summary>
        /// <param name="name">The file name of the desired template.
        /// </param>
        /// <returns>     The template.
        /// </returns>
        /// <throws>  ResourceNotFoundException if template not found </throws>
        /// <summary>          from any available source.
        /// </summary>
        /// <throws>  ParseErrorException if template cannot be parsed due </throws>
        /// <summary>          to syntax (or other) Error.
        /// </summary>
        /// <throws>  Exception if an Error occurs in template initialization </throws>
        public virtual Template GetTemplate(string name)
        {
            return ri.GetTemplate(name);
        }

        /// <summary>  Returns a <code>Template</code> from the Velocity
        /// resource management system.
        /// 
        /// </summary>
        /// <param name="name">The file name of the desired template.
        /// </param>
        /// <param name="encoding">The character encoding to use for the template.
        /// </param>
        /// <returns>     The template.
        /// </returns>
        /// <throws>  ResourceNotFoundException if template not found </throws>
        /// <summary>          from any available source.
        /// </summary>
        /// <throws>  ParseErrorException if template cannot be parsed due </throws>
        /// <summary>          to syntax (or other) Error.
        /// </summary>
        /// <throws>  Exception if an Error occurs in template initialization </throws>
        /// <summary> 
        /// </summary>
        /// <since> Velocity v1.1
        /// </since>
        public virtual Template GetTemplate(string name, string encoding)
        {
            return ri.GetTemplate(name, encoding);
        }

        /// <summary>   Determines if a resource is accessable via the currently
        /// configured resource loaders.
        /// <br><br>
        /// Note that the current implementation will <b>not</b>
        /// change the state of the system in any real way - so this
        /// cannot be used to pre-load the resource cache, as the
        /// previous implementation did as a side-effect.
        /// <br><br>
        /// The previous implementation exhibited extreme lazyness and
        /// sloth, and the author has been flogged.
        /// 
        /// </summary>
        /// <param name="resourceName"> name of the resource to search for
        /// </param>
        /// <returns> true if found, false otherwise
        /// </returns>
        /// <since> 1.5
        /// </since>
        public virtual bool ResourceExists(string resourceName)
        {
            return (ri.GetLoaderNameForResource(resourceName) != null);
        }

        /// <summary>  <p>
        /// Sets an application attribute (which can be any Object) that will be
        /// accessible from any component of the system that gets a
        /// RuntimeServices. This allows communication between the application
        /// environment and custom pluggable components of the Velocity engine,
        /// such as ResourceLoaders and LogChutes.
        /// </p>
        /// 
        /// <p>
        /// Note that there is no enforcement or rules for the key
        /// used - it is up to the application developer.  However, to
        /// help make the intermixing of components possible, using
        /// the target Class name (e.g. com.foo.bar ) as the key
        /// might help avoid collision.
        /// </p>
        /// 
        /// </summary>
        /// <param name="key">object 'name' under which the object is stored
        /// </param>
        /// <param name="value">object to store under this key
        /// </param>
        public virtual void SetApplicationAttribute(object key, object value)
        {
            ri.SetApplicationAttribute(key, value);
        }

        /// <summary>  <p>
        /// Return an application attribute (which can be any Object)
        /// that was set by the application in order to be accessible from
        /// any component of the system that gets a RuntimeServices.
        /// This allows communication between the application
        /// environment and custom pluggable components of the
        /// Velocity engine, such as ResourceLoaders and LogChutes.
        /// </p>
        /// 
        /// </summary>
        /// <param name="key">object 'name' under which the object is stored
        /// </param>
        /// <returns> value object to store under this key
        /// </returns>
        /// <since> 1.5
        /// </since>
        public virtual object GetApplicationAttribute(object key)
        {
            return ri.GetApplicationAttribute(key);
        }
    }
}


标签: C# 模版 引擎

实例下载地址

c# 模版引擎(NVelocity)用法 例子源码下载

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警