3 回答

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
一種相當(dāng)討厭的方式是:
Type[] types;
try
{
types = asm.GetTypes();
}
catch (ReflectionTypeLoadException e)
{
types = e.Types;
}
foreach (var t in types.Where(t => t != null))
{
...
}
但是絕對(duì)必須這樣做。您可以使用擴(kuò)展方法在“客戶端”代碼中使其更美觀:
public static IEnumerable<Type> GetLoadableTypes(this Assembly assembly)
{
// TODO: Argument validation
try
{
return assembly.GetTypes();
}
catch (ReflectionTypeLoadException e)
{
return e.Types.Where(t => t != null);
}
}
您可能希望將return語(yǔ)句從catch塊中移出-我不是很熱衷于自己在其中,但是它可能是最短的代碼...

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
就我而言,相同的問(wèn)題是由應(yīng)用程序文件夾中存在不需要的程序集引起的。嘗試清除Bin文件夾并重建應(yīng)用程序。
- 3 回答
- 0 關(guān)注
- 773 瀏覽
添加回答
舉報(bào)