ОК, у меня есть следующий бит кода:
Assembly assembly = Assembly.LoadFile("W:\\AssemblyFoo.dll");
foreach (Type type in assembly.GetExportedTypes())
{
foreach (object attribute in type.GetCustomAttributes(false)) //Exceptio on that line
{
string attributeString = attribute.ToString();
}
}
Код выдает следующее исключение: Не удалось загрузить файл или сборку 'AssemblyBar, Версия = 1.0.0.0, Культура = нейтральный, PublicKeyToken =null 'или одна из его зависимостей.Системе не удается найти указанный файл.
Проблема в том, что один из атрибутов находится в AssemblyBar, на который ссылается AssemblyFoo, но не напрямую на сборку текущего проекта (ProjectBaz).Я бы предпочел не ссылаться на AssemblyBar непосредственно в ProjectBaz, так как AssemblyFoo выбирается пользователем.Как правильно это сделать?Я почти уверен, что упускаю что-то простое.
Я знаю, что это возможно, поскольку Reflector делает это.