Attention: We are retiring the ASP.NET Community Blogs. Learn more >

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

*/

No Comments