为什么var type = Type.GetType("System.Windows.Forms.TextBox");
返回null
?
我正在尝试从string
中获取TextBox
类型的类型。
您也应该包括完整的程序集名称:
var type = Type.GetType("System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
请注意MSDN上的文档(重点是我的):
要获取…的类型的程序集限定名称。。。如果类型在当前执行的程序集中或Mscorlib.dll中,则只要提供由其命名空间限定的类型名称就足够了。
因此,只能使用类型名称解析mscorlib和Assembly.GetExecutingAssembly()
,否则也需要完整的程序集名称。
您还应该包括程序集名称和公共令牌等:
var type = Type.GetType("System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");