Click here to Skip to main content
15,896,727 members
Articles / Programming Languages / C#

Reflection Explorer

Rate me:
Please Sign up or sign in to vote.
3.80/5 (3 votes)
11 Jul 20064 min read 20.5K   563   16  
Using reflection as a runtime debugger, and to load/save settings files.
using System;
using System.Collections;
using RefExpNS;

namespace TestRefExp
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	/// 

	public struct ST1
	{
		public long		LongPubblico;
		public long		IntPubblico;
		public float	FloatPubblico;
		public double	DoublePubblico;
		public bool		BoolPubblico;
		public string   StringaPubblico;
		public TipoEnum	EnumPubblico;
	} ;
	
	public enum TipoEnum
	{
		Enum1,
		Enum2,
		Enum3
	}


	public class Class1 : RefExpNS.LSRef
	{

		//tipi semplice
		public long		LongPubblico;
		public long		IntPubblico;
		public float	FloatPubblico;
		public double	DoublePubblico;
		public bool		BoolPubblico;
		public string   StringaPubblico;
		public TipoEnum	EnumPubblico;
		
		//struct
		public ST1		struttura1;
	
		//array monodim
		public int		[] arrInt;
		public double	[] arrDouble;
		public bool		[] arrBool ;
		public String   [] arrStr ;
		public TipoEnum [] arrEnum;

		
		//array bidimensionale
		public int		[,] arrInt2D;
		public double	[,] arrDouble2D;
		public bool		[,] arrBool2D;
		public String	[,] arrStr2D;
		public TipoEnum [,] arrEnum2D;

		public ArrayList arrList;

		public Class3Collection coll3;
	

		public Class2 c2;

		#region testDie
		public string strDie;
		public int [,] arrDie2d;
		public Class2 clDie;	
		#endregion

		private long _longPrivate;
		private int _intPrivate;

		/// <summary>
		/// Obtains or defines 
		/// </summary>
		public int IntPrivate 
		{
			get
			{
				return _intPrivate;
			}
			set
			{
				_intPrivate = value;
			}
		}
		private float _floatPrivate;

		/// <summary>
		/// Obtains or defines 
		/// </summary>
		public float FloatPrivate 
		{
			get
			{
				return _floatPrivate;
			}
			set
			{
				_floatPrivate = value;
			}
		}
		private double _doublePrivate;

		/// <summary>
		/// Obtains or defines 
		/// </summary>
		public double DoublePrivate 
		{
			get
			{
				return _doublePrivate;
			}
			set
			{
				_doublePrivate = value;
			}
		}
		private bool _boolPrivate;

		/// <summary>
		/// Obtains or defines 
		/// </summary>
		public bool BoolPrivate 
		{
			get
			{
				return _boolPrivate;
			}
			set
			{
				_boolPrivate = value;
			}
		}
		private string _stringaPrivate;

		/// <summary>
		/// Obtains or defines 
		/// </summary>
		public string StringaPrivate 
		{
			get
			{
				return _stringaPrivate;
			}
			set
			{
				_stringaPrivate = value;
			}
		}
		private TipoEnum _enumPrivate;

		/// <summary>
		/// Obtains or defines 
		/// </summary>
		public TipoEnum EnumPrivate 
		{
			get
			{
				return _enumPrivate;
			}
			set
			{
				_enumPrivate = value;
			}
		}
			
		/// <summary>
		/// Obtains or defines 
		/// </summary>
		public long LongPrivateProperties 
		{
			get
			{
				return _longPrivate;
			}
			set
			{
				_longPrivate = value;
			}
		}




		public Class1()
		{
			#region semplici
			LongPubblico=1;
			IntPubblico=1;
			FloatPubblico=1.1F;
			DoublePubblico=3.3;
			BoolPubblico=true;
			StringaPubblico="Str1";
			EnumPubblico=TipoEnum.Enum1;
			#endregion
			
			#region struttura
			struttura1.LongPubblico=1;
			struttura1.IntPubblico=1;
			struttura1.FloatPubblico=1.1F;
			struttura1.DoublePubblico=3.3;
			struttura1.BoolPubblico=true;
			struttura1.StringaPubblico="Str1";
			struttura1.EnumPubblico=TipoEnum.Enum1;
			#endregion

			#region array1D
			arrInt=new int[4];
			arrInt[0]=10;
			arrInt[2]=21;

			arrDouble=new double[4];
			arrDouble[0]=10.10;
			arrDouble[2]=21.21;
	
			arrBool=new bool[4];
			arrBool[0]=true;
			arrBool[2]=true;
	
			arrStr=new string[4];
			arrStr[0]="str0";
			arrStr[2]="str2";

			arrEnum=new TipoEnum[3];
			arrEnum[0]=TipoEnum.Enum3;
			arrEnum[1]=TipoEnum.Enum1;
			arrEnum[2]=TipoEnum.Enum3;
			#endregion

			#region array2D
			arrInt2D=new int[3,2];
			arrInt2D[0,0]=10;
			arrInt2D[2,1]=21;

			arrDouble2D=new double[3,2];
			arrDouble2D[0,0]=10.10;
			arrDouble2D[2,1]=21.21;
	
			arrBool2D=new bool[3,2];
			arrBool2D[0,0]=true;
			arrBool2D[2,1]=true;
	
			arrStr2D=new string[3,2];
			arrStr2D[0,0]="str0";
			arrStr2D[2,1]="str2";

			arrEnum2D=new TipoEnum[3,2];
			arrEnum2D[0,0]=TipoEnum.Enum3;
			arrEnum2D[2,1]=TipoEnum.Enum3;
			#endregion


			//by properties
			_longPrivate=1;
			_intPrivate=1;
			_floatPrivate=1.1F;
			_doublePrivate=3.3;
			_boolPrivate=true;
			_stringaPrivate="Str1";
			_enumPrivate=TipoEnum.Enum1;
			
			
			arrList=new ArrayList();
			string str1="stringa1";
			arrList.Add(str1);

			coll3=new Class3Collection();
			coll3.Add(new Class3());
			coll3.Add(new Class3());
	
			c2=new Class2();


		}


		
	}
}

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 has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
Italy Italy
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions