Call Non Public Method
using System;
using System.Reflection;
namespace Homelidays.Web.SessionService.Tests
{
/// <summary>
/// A helper class that eases reflection operations.
/// voici Les mthodes implmenter au fur et mesure des besoins:
/// - internal static object CallNonPublicStaticMethod(string className, string methodName)
/// - internal static object InstanciateNonPublicClass(string className)
/// </summary>
internal static class ReflectionUtility
{
/// <summary>
/// Call a non public method of an object
/// </summary>
/// <param name="objectWithNonPublic">Object whose method to call is non public.</param>
/// <param name="methodName">Name of the method to call.</param>
/// <param name="parameters">Table of parameters to pass to the method.</param>
/// <returns>The object returned by the private method to call.</returns>
internal static object CallNonPublicMethod(object objectWithNonPublic, string methodName, object[] parameters)
{
Type type = objectWithNonPublic.GetType();
MethodInfo method_info = type.GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic);
var return_object = method_info.Invoke(objectWithNonPublic, parameters);
return return_object;
}
}
}
Related examples in the same category