Como criar propriedades em UserControls do ASP.NET

Em todos os projetos ASP.NET que estive envolvido em minha vida, quase nunca me deparei com implementações idênticas de propriedades de ASP.NET UserControls. E não estou me referindo a propriedades de complexidade avançada ou média, falo sobre o tipo mais básico de propriedade, aquelas utilizadas para persistir uma informação na ViewState.

Particularmente esta é uma questão que, embora não muito importante, sempre me deixou muito curioso, mas que, por estar envolvido em questões mais relevantes, nunca reservei um tempo para pesquisar a respeito e descobrir a melhor maneira de persistir e recuperar uma informação na ViewState do ASP.NET através de uma propriedade.

Depois de muito pesquisar pelo Google sem encontrar um padrão de implementação bem definido, resolvi abrir o .NET Reflector e investigar como a Microsoft implementou esta tarefa em seus WebControls.

Durante esta análise do código-fonte do .NET Framework, percebi que existe um certo padrão em todo o código-fonte, onde a Microsoft define propriedades de objetos seguindo o esquema abaixo:

 

Propriedades “System.String”:

[Bindable(true, BindingDirection.TwoWay),
PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty),
Editor("System.ComponentModel.Design.MultilineStringEditor,System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor)),
Localizable(true),
WebCategory("Appearance"),
DefaultValue(""),
WebSysDescription("TextBox_Text")]

public virtual string Text
{
    get
    {
        string str = (string) this.ViewState["Text"];
        if (str != null)
        {
            return str;
        }
        return string.Empty;
    }
    set
    {
        this.ViewState["Text"] = value;
    }
}

* Propriedade Text do objeto System.Web.UI.WebControls.TextBox.

 

Propriedades “System.Boolean”:

[DefaultValue(false),
Bindable(true,
BindingDirection.TwoWay),
Themeable(false),
WebSysDescription("CheckBox_Checked")]

public virtual bool Checked
{
    get
    {
        object obj2 = this.ViewState["Checked"];
        return ((obj2 != null) && ((bool) obj2));
    }
    set
    {
        this.ViewState["Checked"] = value;
    }
}

* Propriedade Checked do objeto System.Web.UI.WebControls.CheckBox.

 

Propriedades “System.Int32”:

[WebSysDescription("TableCell_RowSpan"),
WebCategory("Layout"),
DefaultValue(0)]

public virtual int RowSpan
{
    get
    {
        object obj2 = this.ViewState["RowSpan"];
        if (obj2 != null)
        {
            return (int) obj2;
        }
        return 0;
    }
    set
    {
        if (value < 0)
        {
            throw new ArgumentOutOfRangeException("value");
        }
        this.ViewState["RowSpan"] = value;
    }
}

* Propriedade RowSpan do objeto System.Web.UI.WebControls.TableCell.

1 comment to Como criar propriedades em UserControls do ASP.NET

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>