在我的项目中,我有一个名为'BaseSystem'的基类,并且派生类'RoundedTree'。下面显示的代码'type'
对于派生类'RoundedTree'变为null,对于baseclass'BaseSystem',它给出'{Name = "BaseSystem" FullName = "Root.SystemModel.BaseSystem"}'
。我拥有的DLL是Root.SystemModel.dll及其版本i可以在反思中看到3.6.7.8
“类型”背后的原因是什么?来源
public static Type ToType(UserType usedType)
{
Type type = null;
if (usedTypeType != null
&& usedTypeType.Name != string.Empty)
{
type = Type.GetType(usedType.Name);
答案 0 :(得分:5)
Type.GetType(string)
将返回null,并且类型在mscorlib
以外的程序集中,而当前正在执行的程序集中
来自文档:
如果 typeName 包含命名空间而不包含程序集名称,则此方法仅按顺序搜索调用对象的程序集和Mscorlib.dll。如果 typeName 使用部分或完整程序集名称完全限定,则此方法将在指定的程序集中搜索。如果程序集具有强名称,则需要完整的程序集名称。
假设您的类型与调用类型位于不同的程序集中,则选项为:
Assembly
的引用并致电Assembly.GetType(string)
Type.GetType(string)