class Love { public int field1; private string _name; public Love() { } public string Name { get { return _name; } set { _name = value; } } public int GetInt(int a) { return a; } public void Display(string str) { Console.WriteLine(str); } private void PrivateMethode(string str) { Console.WriteLine(str); } } class Class1 { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { Love love = (Love)Activator.CreateInstance(typeof(Love), null); Type type = typeof(Love); //BindingFlags.CreateInstance 创建实例 Object obj = type.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, args); //调用没有返回值的方法 type.InvokeMember("Display", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance, null, obj, new object[] { "aldfjdlf" }); //调用有返回值的方法 int i = (int)type.InvokeMember("GetInt", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance, null, obj, new object[] { 1 }); Console.WriteLine(i); //设置属性值 type.InvokeMember("Name", BindingFlags.SetProperty, null, obj, new string[] { "abc" }); //获取属性值 string str = (string)type.InvokeMember("Name", BindingFlags.GetProperty, null, obj, null); Console.WriteLine(str); //设置字段值 type.InvokeMember("field1", BindingFlags.SetField, null, obj, new object[] { 444 }); //获取字段值 int f = (int)type.InvokeMember("field1", BindingFlags.GetField, null, obj, null); Console.WriteLine(f); //调用private method type.InvokeMember("PrivateMethode", BindingFlags.Instance | BindingFlags.NonPublic|BindingFlags.InvokeMethod, null, obj, new object[] { "hello mike" }); Console.ReadLine(); } }