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;
}
";
}
*/