Budujemy aplikację .NET, do której ładujemy zewnętrzne zestawy kodów ("wtyczki"). Do tego momentu ładowaliśmy te zespoły do jednej (głównej) domeny aplikacji.Jak obsługiwać wymianę danych między domenami aplikacji
Chcielibyśmy móc rozładować złożenie po jego załadowaniu.
W tym celu projektujemy system, który utworzy osobne dodatkowe AppDomain do hostowania zestawów wtyczek, które zostaną rozładowane do woli.
Problemy mamy z tym podejściem:
- Wtyczka DLL jest potrzebna interakcja z klas w głównym AppDomain (rejestratora, na przykład).
- Dane wysyłane do biblioteki DLL wtyczki niekoniecznie są oznaczone jako Serializowalne lub pochodzą od MarshalByRefObj.
Czy istnieje jakaś powszechna praktyka dzielenia aplikacji w takich przypadkach? Jakie jest najlepsze rozwiązanie, do którego moglibyśmy dążyć?
Kolejne interesujące pytanie - dlaczego MarshalByRef nie ma atrybutu i zmusza nas do wyprowadzenia z obiektu?
'Chcielibyśmy móc rozładować zespół po jego załadowaniu. Http://stackoverflow.com/questions/6258160/unloading-ssembly-loaded-with-assembly-loadfrom 1. Do interakcji między oddzielne AppDomains prawdopodobnie będziesz musiał to zrobić poprzez Remoting. 2. jest stwierdzeniem, czy mógłbyś je edytować, aby wyjaśnić to drugie pytanie –