Autocode templates
A viewstate property template
public /*=args[0]*/ /*=CapName( args[1] )*/
{
get
{
/*=ViewStateGettter(args[0],args[1])*/
//return /*=DecorateName( args[1] )*/;
}
set
{
/*=DecorateName( args[1] )*/ = value;
}
}[@]_
/*+
private string CapName( string name )
{
string nm = name.Substring( 0, 1 ).ToUpper();
if( name.Length > 1 )
nm += name.Substring( 1 );
return nm;
}
private string DecorateName( string name )
{
return "ViewState[\"" + CapName(name) + "\"]";
}
private string ViewStateGettter(string typeName,string name)
{
Type type = System.Type.GetType(typeName);
bool isReferenceType = true;
if(type==null)
{
switch(typeName)
{
case "int":
case "decimal":
case "double":
case "float":
isReferenceType = false;
break;
}
}
else
{
if(!type.IsClass && !type.IsInterface)
{
isReferenceType = false;
}
}
if(isReferenceType)
{
return ReferenceTypeViewStateGettter(typeName,name);
}
else
{
return ValueTypeViewStateGettter(typeName,name);
}
}
private string ReferenceTypeViewStateGettter(string typeName,string name)
{
return "return ViewState[\"" + CapName(name) + "\"] as " + typeName +";";
}
private string ValueTypeViewStateGettter(string typeName,string name)
{
return @"object o = ViewState[""" + CapName(name) +@"""];
if(o!=null)
{
return (" + typeName + @")o;
}
";
}
*/