/// <summary>
 /// Uses reflection to dynamically invoke a method,
 /// throwing an exception if it is not
 /// implemented on the target object.
 /// </summary>
 /// <param name="method">
 /// Name of the method.
 /// </param>
 public object CallMethod(string method)
 {
     return(MethodCaller.CallMethod(this.Instance, method));
 }
 /// <summary>
 /// Uses reflection to dynamically invoke a method,
 /// throwing an exception if it is not
 /// implemented on the target object.
 /// </summary>
 /// <param name="method">
 /// Name of the method.
 /// </param>
 /// <param name="parameters">
 /// Parameters to pass to method.
 /// </param>
 public object CallMethod(string method, params object[] parameters)
 {
     return(MethodCaller.CallMethod(this.Instance, method, parameters));
 }
 /// <summary>
 /// Creates an instance of the specified
 /// type and contains it within a new
 /// LateBoundObject.
 /// </summary>
 /// <param name="objectType">
 /// Type of object to create.
 /// </param>
 /// <remarks>
 /// The specified type must implement a
 /// default constructor.
 /// </remarks>
 public LateBoundObject(Type objectType)
     : this(MethodCaller.CreateInstance(objectType))
 {
 }