Possible Duplicate:
How to prevent ReflectionTypeLoadException when calling Assembly.GetTypes()獲取集中定義的類型只
我想獲得的所有類型在組件中。不過,我得到以下錯誤:
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
的問題是我收到的類型是從引用,而不是單元測試環境中的另一個組件只在生產環境中可用的組件。
那麼,有沒有什麼辦法可以過濾GetTypes或類似的東西,只返回在程序集中實際定義的類型而不能獲得類型加載異常?
例如替代
.Assembly.GetTypes().Where(t => t.Namespace.Equals(...
可能會也可能不適用,但我建議您使用GetExportedTypes來代替,除非您需要查看程序集內的私有類型。 http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getexportedtypes.aspx – Phil
GetExportedTypes具有完全相同的問題。當然可以使用任何一種方法,但是它不能解決訪問不同程序集中引用的基本問題。 – sweetfa
爲什麼不是每個人都鏈接到[獲取裝配中的所有類型](http://haacked.com/archive/2012/07/23/get-all-types-in-an-assembly.aspx)博文我們都知道?!另外,請參閱[喬恩Skeet的答案](http://stackoverflow.com/questions/7889228/how-to-prevent-reflectiontypeloadexception-when-calling-assembly-gettypes)這是必然得到複製很多這裏 – sehe