Всем привет
Суть ситуации вот в чем:
- Есть swf-контейнер для нескольких игр
- Есть несколько swf-файлов, в которых зашиты несколько вариантов логики игры (класс Game, называется так во всех swf-ках).
- Далее, есть интерфейс IGame, который зашит во все swf-ки, включая контейнер.
Идея такая, что swf-загрузчик обращается к логике любой игры через IGame.
Но...
Так как имена классов совпадают (логика везде называется Game), то во избежание повторения имен классов, я каждый раз swf с классом Game гружу в новый ApplicationDomain.
И вот в чем весь косяк - интерфейс IGame в загружаемой swf-ке тоже попадает в новый ApplicationDomain, а значит, он уже не равен интерфейсу в swf-ке загрузчике.
Соответственно, кастинг Game из загруженной swf-ки в IGame загружающей возвращает ровно null =(
Уфф... ну вот, наконец-то, и сам вопрос - как лучше с этим разобраться, при учете, что необходимо сохранить имя класса Game во всех swf-ках?
UPD:
Судя по всему, нужного эффекта никак не добиться. По сути, мне нужно было перезаписать класс Game в текущем домене приложения, чего сделать никак нельзя.
Единственный выход для сохранения строгой типизации - это изменение имен классов в загружаемых swf-ках и загрузка этих swf-ок в ApplicationDomain.currentDomain