遍历* .dll文件的目录,找到它们并为每个文件创建一个Assembly引用。反射装配类型时未找到文件错误
string[] files = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory + "Methods", "*.dll");
foreach (string s in files)
{
Assembly asm = Assembly.LoadFile(s);
Type[] asmTypes = asm.GetTypes();
bool isCorrect = false;
foreach (Type type in asmTypes)
{
1. var customAttribs = type.GetCustomAttributes(typeof(BaseModelAttribute), false);
}
}
[更新]:
一旦我有一个反射的物体,我经历了所有在每个可用的类型,从中我想获得集合中的每个类型的自定义属性迭代:在#1行提出异常
此代码一直工作到foreach循环,当我得到一个异常说文件找不到,这是奇怪的,因为我从文件创建一个程序集引用在代码块中更高(代码中未提及)。
[更新]:Erno在假设无法建立参考时是正确的。基于某种原因,需要在参考池之外(在bin目录中)定义,即使应用程序实际上不需要它。对我来说没有意义,但它有效。谢谢。
请包括所有相关的代码。 – James
您可能想调用'GetExportedTypes()'来代替。 – leppie