通过字符串获取静态类
本文关键字:静态类 获取 字符串 | 更新日期: 2023-09-27 18:01:39
Type.GetType("System.Windows.Forms.MessageBox")
.GetMethod("Show", new Type[] { Type.GetType("System.String") })
.Invoke(null, new object[] { "test" });
我试图调用MessageBox.Show("test")
方法,仅使用类和方法名称的字符串值。但是,我无法通过名称获得MessageBox
的类型。
任何想法?
您需要指定程序集的全名。
(它位于GAC -如果你有win 7,你可以在:%windir%'assembly中看到程序集):
Type t = Type.GetType("System.Windows.Forms.MessageBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
var method = t.GetMethod("Show", new Type[] { Type.GetType("System.String") });
method.Invoke(null, new object[] { "test" });
string type = typeof(MessageBox).AssemblyQualifiedName;
Type.GetType(type).GetMethod("Show", new Type[] { Type.GetType("System.String") }).Invoke(null, new object[] { "test" });
好了,各位,AssemblyQualifiedName
起作用了