Solved

Indexed properties on custom class

Posted on 2008-11-03
2
409 Views
Last Modified: 2013-12-17
I have a custom class (ControlPropertiesBase) whith the following fields (see code).
Several other classes (derived from WebControls) have the property ControlProperties, which is derived from the ControlPropertiesBase, plus other properties / fields.

Is it possible to access the properties via indexing like myControl.Properties["TabOrder"], and if so how can I do that?
[Serializable]

public class ControlPropertiesBase

{

	public string Name;

	public string Label;

	public string LabelTranslated;

	public int TabOrder;

	public bool Compulsary;

	public bool ReadOnly;

	public bool Visible;

}
 

public class DropDownListControl : DropDownList

{

	[Serializable]

	public class ControlProperties : ControlPropertiesBase

	{

		public ControlProperties() { }

		public Hashtable Items;

	}
 

	private ControlProperties _properties = new ControlProperties();

	public ControlProperties Properties

	{

		get { return _properties; }

		set { _properties = value; }

	}
 

	protected override void OnInit(EventArgs e)

	{

		base.OnInit(e);

		this._properties = new ControlProperties();

	}

}

Open in new window

0
Comment
Question by:Albert Van Halen
  • 2
2 Comments
 
LVL 1

Expert Comment

by:Nullable
ID: 22871528
u can use this code :)



this._properties = new ControlProperties();
 

_properties.Label = "Nullable";
 

string labelvalue = _properties.GetType().GetField("Label").GetValue(_properties).ToString();

Open in new window

0
 
LVL 1

Accepted Solution

by:
Nullable earned 500 total points
ID: 22871633
u Can use this code

i test it and it will be work



public class ControlProperties : ControlPropertiesBase

        {

            public ControlProperties() { }

            public Hashtable Items;

            public object this[string index]

            {

                get

                {

                    return this.GetType().GetField(index).GetValue(this).ToString();

                }

                set

                {

                    this.GetType().GetField(index).SetValue(this, value);

                }

            }

        }
 

// Use code :
 

string labelvalue = _properties["Label"] as string;

Open in new window

0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now