为什么var type = Type.GetType("System.Windows.Forms.TextBox");
会返回null
?
我正在尝试从TextBox
获取string
类型的类型。
答案 0 :(得分:7)
您也应该包含完整的程序集名称:
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()
,否则您也需要完整的程序集名称。
答案 1 :(得分:4)
您还应该包括程序集名称和公共令牌等:
var type = Type.GetType("System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");