Type.GetType(string.contains(','))

Posted 猝不及防

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Type.GetType(string.contains(','))相关的知识,希望对你有一定的参考价值。

例如

 Type type = Type.GetType("ACalCoreServiceLib.BaseService,ACalCoreServiceLib");

里面的ACalCoreServiceLib.BaseService,ACalCoreServiceLib是完全限定名,逗号后面的命名空间可写可不写

 

引用:http://www.cnblogs.com/olartan/archive/2011/11/30/2268809.html

关于typeName的说明如下:

1)字符串的首尾不允许有空格,逗号前不允许有空格(笔者在项目中应该在逗号前多余了一个空格导致抛出无法找到类型的异常)

2)完全限定名可以包含逗号后面的namespace,当然也可不包含

 

关于跨进程的反射同样有两点要注意:

1)typeof是支持强类型的,如:var t = typeof(FF.Persistence.Driver.SQLite) 前提是项目必须引用FF.Persistence程序集

2)使用Type.GetType来进行反射,要明白Type.GetType是非强类型,如果参数typeName表示的目标类型不在当前程序集中,那么会返回null。解决办法是:

 

var asmb = Assembly.LoadFrom("FF.Persistence.dll") ;
var supType = asmb.GetType("FF.Persistence.Driver.SQLite") ;

以上都是些小细节,如果留心会少走很多弯路。

以上是关于Type.GetType(string.contains(','))的主要内容,如果未能解决你的问题,请参考以下文章

Type.GetType()反射另外项目中的类时返回null的解决方法

Type.GetType()反射另外项目中的类时返回null的解决方法

c# 反射时GetType方法查找Type的分析

Type.GetType(string.contains(','))

如果 typeof(Xyz) 存在,为啥 System.Type.GetType("Xyz") 返回 null?

Type.GetType()在跨程序集反射时返回null的解决方法