System

  • Uploaded by: SRINIVASA RAO GANTA
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View System as PDF for free.

More details

  • Words: 552
  • Pages: 5
Aim:-

Demonstrate how to gather information on various types included in any assembly by using the System.Reflection namespace and some main.NET base classes.

Source code:Customer. Class using System; namespace Customer { public class Client { public Client() { } public string GetClient(String ClientID) { return "ID is blank"; } } } worker.class using System; namespace Employee { public class Worker { public Worker() { } public string GetWorker(String WorkerID) { return "ID is blank"; } } }

individual.class using System; namespace Person { public class Individual { public Individual() { } public string GetIndividual(String IndividualID) { return "ID is blank"; } } }

reflectionform.cs using using using using using using using

System; System.Reflection; System.Drawing; System.Collections; System.ComponentModel; System.Windows.Forms; System.Data;

namespace Reflection { public class ReflectionForm : System.Windows.Forms.Form { private System.Windows.Forms.Button GetAssemblyInfo; private System.Windows.Forms.ComboBox listAssemblies; private System.Windows.Forms.Label label1; private System.Windows.Forms.ListBox listTypes; private System.ComponentModel.Container components = null; private Type[] PersonTypes; private Type[] EmployeeTypes; private Type[] CustomerTypes; public ReflectionForm() { InitializeComponent(); } protected override void Dispose( bool disposing ) { if( disposing ) {if (components != null) { components.Dispose(); } base.Dispose( disposing ); } #region Windows Form Designer generated code private void InitializeComponent() { this.GetAssemblyInfo = new System.Windows.Forms.Button(); this.listAssemblies = new System.Windows.Forms.ComboBox(); this.label1 = new System.Windows.Forms.Label(); this.listTypes = new System.Windows.Forms.ListBox(); this.SuspendLayout(); this.GetAssemblyInfo.Location = new System.Drawing.Point(280, 40); this.GetAssemblyInfo.Name = "GetAssemblyInfo"; this.GetAssemblyInfo.Size = new System.Drawing.Size(75, 23); this.GetAssemblyInfo.TabIndex = 0; this.GetAssemblyInfo.Text = "Get Info"; this.GetAssemblyInfo.Click += new System.EventHandler(this.btnGetInfo_Click); DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.listAssemblies.Items.AddRange(new object[] { "Person", "Employee", "Customer"});

this.listAssemblies.Location = new System.Drawing.Point(144, 40); this.listAssemblies.Name = "listAssemblies"; this.listAssemblies.Size = new System.Drawing.Size(121, 21); this.listAssemblies.TabIndex = 1; this.listAssemblies.SelectedIndexChanged += new System.EventHandler(this.cboAssemblies_SelectedIndexChanged); this.label1.Location = new System.Drawing.Point(16, 40); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(112, 16); this.label1.TabIndex = 2; this.label1.Text = "Select An Assembly: "; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.listTypes.Location = new System.Drawing.Point(8, 88); this.listTypes.Name = "listTypes"; this.listTypes.Size = new System.Drawing.Size(376, 459); this.listTypes.TabIndex = 3; this.listTypes.SelectedIndexChanged += new System.EventHandler(this.listTypes_SelectedIndexChanged); this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(479, 559); this.Controls.Add(this.listTypes); this.Controls.Add(this.label1); this.Controls.Add(this.listAssemblies); this.Controls.Add(this.GetAssemblyInfo); this.Name = "ReflectionForm"; this.Text = "Reflection Sample"; this.Load += new System.EventHandler(this.ReflectionForm_Load); this.ResumeLayout(false); } #endregion static void Main() {Application.Run(new ReflectionForm()); } private void btnGetInfo_Click(object sender, System.EventArgs e) { string SelectedAssembly = this.listAssemblies.SelectedItem.ToString(); if(SelectedAssembly == "Person") { listTypes.Items.Clear(); LoadTypeInfo(PersonTypes); } else if (SelectedAssembly == "Employee") { listTypes.Items.Clear(); LoadTypeInfo(EmployeeTypes); } else if (SelectedAssembly == "Customer") { listTypes.Items.Clear(); LoadTypeInfo(CustomerTypes); } else { listTypes.Items.Clear(); } }

private void LoadTypeInfo(Type[] AssemblyType) { foreach(Type baseType in AssemblyType) { listTypes.Items.Add("Assembly Type: "+baseType.FullName+" ("+baseType.UnderlyingSystemType+")"); listTypes.Items.Add("Base Type: "+baseType.BaseType); listTypes.Items.Add("Serializable: " + baseType.IsSerializable); listTypes.Items.Add("Abstract: " + baseType.IsAbstract); listTypes.Items.Add("Class: " + baseType.IsClass); listTypes.Items.Add("Public: " + baseType.IsPublic); listTypes.Items.Add("Sealed: " + baseType.IsSealed); System.Reflection.TypeAttributes baseTypeAttributes= baseType.Attributes; listTypes.Items.Add(""); listTypes.Items.Add("Attributes:"); listTypes.Items.Add(baseTypeAttributes.ToString()); PropertyInfo[] propInfo = baseType.GetProperties(); MethodInfo[] methodInfo = baseType.GetMethods(); listTypes.Items.Add(""); listTypes.Items.Add("Properties:"); foreach(PropertyInfo prop in propInfo) { listTypes.Items.Add("Name: " +prop.Name); listTypes.Items.Add("Member Type: " +prop.MemberType); listTypes.Items.Add("Property Type: " +prop.PropertyType); listTypes.Items.Add("Read: " +prop.CanRead); listTypes.Items.Add("Write: " +prop.CanWrite); listTypes.Items.Add(""); } listTypes.Items.Add(""); listTypes.Items.Add("Methods:"); foreach(MethodInfo method in methodInfo) { listTypes.Items.Add("Name: " +method.Name); listTypes.Items.Add("Member Type: " +method.MemberType); listTypes.Items.Add("Return Type: " +method.ReturnType); listTypes.Items.Add("Public: " +method.IsPublic); listTypes.Items.Add("Private: " +method.IsPrivate); listTypes.Items.Add("Abstract: " +method.IsAbstract); listTypes.Items.Add("Virtual: " +method.IsVirtual); listTypes.Items.Add("Static: " +method.IsStatic); listTypes.Items.Add(""); } } } private void ReflectionForm_Load(object sender, System.EventArgs e) { Assembly PersonAssembly = Assembly.LoadFrom("..\\..\\Person.dll"); PersonTypes = PersonAssembly.GetTypes(); Assembly EmployeeAssembly = Assembly.LoadFrom("..\\..\\Employee.dll"); EmployeeTypes = EmployeeAssembly.GetTypes(); Assembly CustomerAssembly = Assembly.LoadFrom("..\\..\\Customer.dll"); CustomerTypes = CustomerAssembly.GetTypes(); listAssemblies.SelectedIndex=0; }

private void cboAssemblies_SelectedIndexChanged(object sender, System.EventArgs e) { } private void listTypes_SelectedIndexChanged(object sender, EventArgs e) { } } }

Output:-

Result:- The

programme is executed successfully without any errors.

Related Documents

System
May 2020 30
System
October 2019 54
System
June 2020 23
System
May 2020 22
System
June 2020 22

More Documents from "msacosta7"