Мое приложение загружает все сборки библиотек, расположенные в его пути выполнения, и выполняет преизвестные методы в отношении содержащихся классов.Загрузите сборку во время выполнения, которая ссылается на вызывающую сборку
Теперь мне нужно сделать то же самое с сборкой, которая ссылается на мою сборку приложений. Возможно ли это, и есть ли какие-либо негативные последствия, о которых я должен знать?
Мастер сборка:
public abstract class TaskBase
{
public abstract void DoWork();
}
LoadAssemblyFromFile("Assembly0001.dll");
Assembly0001.Task1.DoWork();
Дети Сборка:
public sealed class Task1: MasterAssembly.TaskBase
{
public override void DoWork { /* whatever */ }
}
Я делаю это все время без проблем. Единственная проблема, с которой я столкнулся (несколько раз на самом деле), - это управление версиями сборки _master_. Если вы внесете изменения в _master_ без перекомпиляции детей, вы можете столкнуться с некоторыми причудливыми проблемами. –
@ M.Babcock: Спасибо. Из любопытства, какие проблемы? При повторной компиляции я не автоматически увеличиваю версии сборки. Я предполагаю, что СЛЕДУЕТ обойти любые проблемы, с которыми вы столкнулись. Твои мысли? –
Самая распространенная проблема, с которой я столкнулся, заключается в том, что определение метода изменяет разрывную совместимость, хотя в других случаях я испытал, что страшный «_Type_ определяется как в исключении _Master_, так и _Master_» (из памяти, а не в буквальном тексте, но закрывается достаточно, чтобы вы это узнали). –