Mega Code Archive

 
Categories / C# / Reflection
 

Call Non Public Method

using System; using System.Reflection; namespace Homelidays.Web.SessionService.Tests {     /// <summary>     /// A helper class that eases reflection operations.     /// voici Les méthodes à implémenter 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;         }     } }