System.Reflection namespace, which
allows us to programmaticaly access the types contained in any assembly. We will
see how we can do late bindings in four easy steps..
- We have Get IDispatch Interface using
Type.GetTypeFromProgID("Project1.Class1") - We have to create instance using the type ID
Activator.CreateInstance(objAddType) - We have to make array of arguments (if required)
- Invoke the Method using
objAddType.InvokeMemberfunction.
// Written By ImtiazAlam
using System.Reflection;
using System;
namespace Imtiaz
{
class LateBinding
{
publicstaticvoid Main()
{
//Get IDispatch Interface
Type objAddType = Type.GetTypeFromProgID("Project1.Class1");
//Create Instance
object objAdd = Activator.CreateInstance(objAddType);
//Make Array of Arguments
object[] myArguments = { 100, 200
};
object c;
//Invoke Add Method
c = objAddType.InvokeMember("Add", BindingFlags.InvokeMethod,
null, objAdd, myArguments);
Console.WriteLine(c);
}
}
}
The method Type.GetTypeFromProgID is used to load the type information
of the COM object.The call to Activator.CreateInstance returns an
instance of the COM object. And Finally InvokeMember function is
usedto call the Method of COM object.
Comments