下面是測試類代碼:
	using System;
	using System.Reflection;
using NUnit.Framework;
	namespace ClassLibrary1
	{
	    /**//// <summary>
	    /// Summary description for Tester.
	    /// </summary>
	    [TestFixture]
	    public class Tester
	    {
	        [Test]
	        public void MyPrivateMethod_Test()
	        {
	            ClassLibrary1.Class1 class1 = new ClassLibrary1.Class1();
	            object[] aobjParams = new object[] { 3, 4 };
	            object strRet;
	            strRet = RunInstanceMethod( typeof(ClassLibrary1.Class1),
	                "MyPrivateMethod",
	                class1,
	                aobjParams
	            );
	            Assert.AreEqual(7, strRet.ToString());
	        }
	        /**//// <summary>
	        /// 運行靜態(tài)方法
	        /// </summary>
	        /// <param name="t"></param>
	        /// <param name="strMethod"></param>
	        /// <param name="aobjParams"></param>
	        /// <returns></returns>
	        public static object RunStaticMethod(System.Type t, string strMethod,
	            object [] aobjParams)
	        {
	            BindingFlags eFlags =
	                BindingFlags.Static | BindingFlags.Public |
	                BindingFlags.NonPublic;
	            return RunMethod(t, strMethod,
	                null, aobjParams, eFlags);
	        }
	        /**//// <summary>
	        /// 運行實例方法
	        /// </summary>
	        /// <param name="t"></param>
	        /// <param name="strMethod"></param>
	        /// <param name="objInstance"></param>
	        /// <param name="aobjParams"></param>
	        /// <returns></returns>
	        public static object RunInstanceMethod(System.Type t, string strMethod,
	            object objInstance, object [] aobjParams)
	        {
	            BindingFlags eFlags = BindingFlags.Instance | BindingFlags.Public |
	                BindingFlags.NonPublic;
	            return RunMethod(t, strMethod,
	                objInstance, aobjParams, eFlags);
	        }
	        /**//// <summary>
	        /// 運行自定義方法
	        /// </summary>
	        /// <param name="t"></param>
	        /// <param name="strMethod"></param>
	        /// <param name="objInstance"></param>
	        /// <param name="aobjParams"></param>
	        /// <param name="eFlags"></param>
	        /// <returns></returns>
	        private static object RunMethod(System.Type t, string
	            strMethod, object objInstance, object [] aobjParams, BindingFlags eFlags)
	        {
	            MethodInfo m;
	            try
	            {
	                m = t.GetMethod(strMethod, eFlags);
	                if (m == null)
	                {
	                    throw new ArgumentException("There is no method '" +
	                        strMethod + "' for type '" + t.ToString() + "'.");
	                }
	                               
	                object objRet = m.Invoke(objInstance, aobjParams);
	                return objRet;
	            }
	            catch
	            {
	                throw;
	            }
	        }
} // end of class
} // end of namespace