[問題] dll 的 LoaderExceptions

看板C_Sharp作者 (地板別打我!>"<)時間11年前 (2012/08/23 09:46), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
各位,小弟遇到個問題如下: 我現在正在嘗試弄一個 plug-in 架構的小程式。 有一個主要的 Class 會包在主架構中,同時它也會發佈給其它的 plug-in Class A 在 Dll 1 其它的 plug-in 都要繼承 Class A,我在 Class 裡弄了一些共有的 methods 和屬性, Class B : A 在 Dll 2 Class C : A 在 Dll 3 Class D : A 在 Dll 2 Class E : A 在 Dll 4 ...etc 那我的問題就是當我嘗試去載入這些 plug-in 的時候,都會發生 LoaderExceptions。 我該朝哪個方向去解決這個問題?? 我有試著朝 TypeForwarding 的方向去試,但還是失敗。 以下是我的程式碼片斷: foreach (string files in Directory.GetFiles(inPath, "*.dll")) { Assembly asm = Assembly.LoadFile(files); /*都是在這邊的 asm.GetTypes() 吐出 ReflectionTypeLoaderException 的 */ List<Type> types = new List<Type>(asm.GetTypes()); List<Type> list = types.FindAll(delegate(Type t) { if (t.BaseType == null) return false; if (t.BaseType.Name == null) return false; /* inBaseTypeName 是 method 的輸入參數 */ if (t.BaseType.Name.CompareTo(inBaseTypeName) != 0) return false; return true; }); if (list != null) { /* outModules 是 method 的 ref 參數 */ outModules = (outModules == null) ? new List<Type>() : outModules; outModules = list; } } 最後,感謝各位的指教了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.88.200
文章代碼(AID): #1GDOkGBK (C_Sharp)