/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// Invoke.cs -- Demonstrate dynamically invoking an object
//
// Compile this program with the following command line:
// C:>csc Invoke.cs
using System;
using System.Reflection;
namespace nsReflection
{
public class Invoke
{
static public void Main ()
{
// Load the Circle assembly.
Assembly asy = null;
try
{
asy = Assembly.Load ("Circle");
}
catch (Exception e)
{
Console.WriteLine (e.Message);
return;
}
// Parameter array for a POINT object.
object [] parmsPoint = new object [2] {15, 30};
// Parameter array for a clsCircle object.
object [] parmsCircle = new object [3] {100, 15, 30};
// Get the type of clsCircle and create an instance of it.
Type circle = asy.GetType("nsCircle.clsCircle");
object obj = Activator.CreateInstance (circle, parmsCircle);
// Get the property info for the area and show the area
PropertyInfo p = circle.GetProperty ("Area");
Console.WriteLine ("The area of the circle is " + p.GetValue(obj, null));
// Get the POINT type and create an instance of it
Type point = asy.GetType("nsCircle.POINT");
object pt = Activator.CreateInstance (point, parmsPoint);
// Show the point using object's ToString() method
Console.WriteLine ("The point is " + pt.ToString ());
}
}
}