1. 程式人生 > >Type.GetType(string.contains(','))

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

程序 namespace archive pty 都是 sem http .sql 例如

例如

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(','))