public override void Start(ArgumentDescription[] args)
        {
            _value = new PositionBuffer();

            _value.Append(
@"using System;
using System.Text;
using System.Web;
using BlogServer;
using BlogServer.Model;

public class Template
{
    private static string HtmlEncode(string val)
    {
        return System.Web.HttpUtility.HtmlEncode(val);
    }

    private static string HtmlAttributeEncode(string val)
    {
        return System.Web.HttpUtility.HtmlAttributeEncode(val);
    }

    private static string HtmlDecode(string val)
    {
        return System.Web.HttpUtility.HtmlDecode(val);
    }

    private static string UrlEncode(string val)
    {
        return System.Web.HttpUtility.UrlEncode(val);
    }

    private static string UrlPathEncode(string val)
    {
        return System.Web.HttpUtility.UrlPathEncode(val);
    }

    private static string UrlDecode(string val)
    {
        return System.Web.HttpUtility.UrlDecode(val);
    }

    public static string Process(object[] parameters)
    {
        StringBuilder ___output = new StringBuilder();
");
            for (int ___i = 0; ___i < args.Length; ___i++)
            {
                ArgumentDescription arg = args[___i];

                string argType = arg.Type.FullName;

                _value.AppendFormat("{0} {1} = ({0})parameters[{2}];", argType, arg.Identifier, ___i);
            }
        }