【发布时间】:2013-05-30 14:39:00
【问题描述】:
我想使用反射来获取提供的命名空间和类型的程序集。我更愿意将这些作为字符串提供。可能需要注意的是,命名空间和类型是在程序集其他中定义的,而不是执行此代码的程序集,但正在执行的代码程序集确实有一个 引用另一个大会。
我的问题是为什么静态 GetType(string) 方法返回 null,而如果我硬编码命名空间和类并在 if 语句中使用 typeof(),我会得到所需的结果?
代码如下:
string fullClassName = "MyNameSpace.MyClass";
Type t = Type.GetType( fullClassName ); // this returns null!
if ( t == null )
{
t = typeof(MyNameSpace.MyClass); // this returns a valid type!
}
感谢您提供的任何见解...
【问题讨论】:
-
MyNameSpace.MyClass 是否已完全解析?
-
是的,MyNameSpace 是我自己的命名空间,但与您在 using 语句中放入的内容相同,例如:MyNameSpace 只是 MyCompany.MyLibrary 或 System.Windows.Forms 的简写(例如)。
-
MyNameSpace 是否包含在另一个命名空间中?
标签: c# reflection typeof