Moja aplikacja ładuje wszystkie zestawy bibliotek znajdujące się w jego ścieżce wykonywania i wykonuje znane metody względem zawartych klas.Załaduj złożenie w czasie wykonywania, które odwołuje się do wywołującego zestawu
Teraz muszę zrobić to samo z zespołem, który odwołuje się do mojego zestawu aplikacji. Czy jest to możliwe i czy są jakieś negatywne konsekwencje, o których powinienem wiedzieć?
Mistrz Montaż:
public abstract class TaskBase
{
public abstract void DoWork();
}
LoadAssemblyFromFile("Assembly0001.dll");
Assembly0001.Task1.DoWork();
dziećmi konfekcjonowane:
public sealed class Task1: MasterAssembly.TaskBase
{
public override void DoWork { /* whatever */ }
}
Robię to przez cały czas bez żadnych problemów. Jedynym problemem, na który napotkałem (kilka razy w rzeczywistości) jest zarządzanie wersjami zespołu _master_. Jeśli wprowadzisz zmiany do _master'a bez rekompilacji dzieci, możesz natknąć się na dziwne problemy. –
@ M.Babcock: Dzięki. Z ciekawości, jakie problemy? Nie dokonuję automatycznej inkrementacji wersji zestawu podczas rekompilacji. Przypuszczam, że POWINIEN omijać wszelkie problemy, które napotkaliście. Twoje myśli? –
Najczęstszym napotkanym problemem jest to, że definicja metody zmienia zerwanie kompatybilności wstecznej, chociaż w innych przypadkach doświadczyłem przerażającego "_Type_ jest zdefiniowany w wyjątku zarówno _Master_, jak i _Master_" (z pamięci, więc nie jest to tekst dosłowny, ale zamknięty na tyle, że go rozpoznasz). –