Click here to Skip to main content
15,884,388 members
Articles / Web Development / ASP.NET

SmartCodeGenerator – Drive Code Generation with XML. Transform XML with ASP.NET instead of XSLT.

Rate me:
Please Sign up or sign in to vote.
2.81/5 (9 votes)
27 Oct 2008CPOL9 min read 56.8K   418   65  
This article describes how we can drive codegeneration with xml. Shows step by step instruction of how to generate strongly typed objects from XSD. ASP.NET developers can also use this paper as reference, who wants to transform xml using ASP.NET instead of XSLT.
// =====================================================================================
// Copyright � 2006 SmartCodeGenerator created by Shahed Khan. 
/*
//Microsoft Shared Source Community License (MS-CL)
//Published: October 18, 2005
*/
// If you like this code then feel free to go ahead and use it.
// Your use of this software is entirely at your own risk.
// I make no claims or warrantees about the reliability or fitness of this code for any particular purpose.
// website www.smartcodegenerator.com, email shahed.khan@gmail.com
// =====================================================================================

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Reflection;
using SmartCodeGen.WebUtil.Base;


public partial class ScEnumUIProperty : ScUIPropertyBase
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    #region ScFrameworkSpecific

    PropertyInfo propertyInfo = null;
    
    
    public ScEnumUIProperty( )
    { }

    public ScEnumUIProperty(PropertyInfo propertyInfo)
    {
        
        ParentPage.OnPreGenerate += new EventHandler(ScEnumUIProperty_OnPreGenerate);        

        this.propertyInfo = propertyInfo;
        foreach (FieldInfo fInfo in this.propertyInfo.PropertyType.GetFields(BindingFlags.Public | BindingFlags.Static))
        {
            //ListItem item = new ListItem(fInfo.Name, ((int)fInfo.GetValue(this.propertyInfo)).ToString());//.Net1.1
            ListItem item = new ListItem(fInfo.Name, fInfo.GetRawConstantValue().ToString());
            ddProperty.Items.Add(item);
        }    

        if (propertyInfo.CanRead)
        {            
            object o = propertyInfo.GetValue(ParentPage.TheProperties, null);
            if (o != null)
            {
                lblPropertyName.Text = propertyInfo.Name;
                foreach (ListItem item in ddProperty.Items)
                {
                    if (item.Text.ToUpper() == o.ToString().ToUpper())
                    {
                        item.Selected = true;
                    }
                    else { item.Selected = false; }
                }
            }
        }
    }

    public void ScEnumUIProperty_OnPreGenerate(object sender, EventArgs e)
    {
        Int32 property = int.Parse(ddProperty.SelectedValue);
        if (propertyInfo.CanWrite)
        {            
            this.propertyInfo.SetValue(ParentPage.TheProperties, property, null);
        }

    }
    
    


    
    #endregion

    

}


By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
Australia Australia
I have been awarded MVP (Visual C#) for year 2007, 2008, 2009. I am a Microsoft Certified Application Developer (C# .Net). I currently live in Melbourne, Australia. I am a co-founder and core developer of Pageflakes www.pageflakes.com and Founder of Simplexhub, a highly experienced software development company based in Melbourne Australia and Dhaka, Bangladesh. Simplexhub.
My BLOG http://www.geekswithblogs.net/shahed
http://msmvps.com/blogs/shahed/Default.aspx.

Comments and Discussions