Я использую значение по умолчанию appdomain (AD), который я использую для создания нового appdomains (AD1) при необходимости для рабочих плагинов в изоляции. При создании нового домена я также обеспечиваю электричеством событие AppDomainUnload, чтобы позволить мне звонить, очищают код и т.д.
Проблема, которую я, кажется, имею:
1) Создайте AD1 из AD
2) Выполненный код в AD1
3) Назовите AD.Unload (AD1)
Кодовые коммутаторы к AD1 и вызовам разгружающаяся передача события в ссылке на текущий AppDomain (AD1).
В этой точке я хотел бы заставить ссылку на текущий экземпляр, работающий в AD1 называть метод завершения работы однако на классе AppDomain нет никакого GetInstance.
Какие-либо идеи, как я могу пойти о получении его?
Когда вы создаете экземпляр в AD1, вы можете либо сохранить экземпляр в статической переменной в AppDoman, статика привязана к AppDomain. В качестве альтернативы, если это не объект одноэлементного типа, вы можете поддерживать List <> объектов в AppDomain.
Вы можете поместить эту «регистрацию» в конструктор вашего экземпляра плагина. При обработке Unload вы можете использовать либо статический список, либо перечислить список и выполнить необходимую очистку объекта (ов).