В попытке упростить мою проблему, я постараюсь сделать ее короткой:
Я использую Pro версию Unity, и у меня есть 2 DLL:
- Сборка .NET 3.5 (действующая как COM-клиент)
- Сборка .NET 4.0 (с интерфейсом, доступным через COM)
3.5 использует COM для работы с 4.0. Использование сборки 3.5 в приложении Windows работает нормально, она загружает 4.0 dll, используя SxS через Type.GetTypeFromCLSID () или Type.GetTypeFromProgID () (что я подтвердил с помощью SxStrace), и может прекрасно использовать его функциональность. (Приложение Windows упоминает, что оно зависит от DLL 4.0 через манифест, я не регистрирую COM DLL.)
Я пытаюсь использовать .NET 4.0 DLL в Unity. Очевидно, я не могу использовать его напрямую, поскольку текущий вариант Mono, который использует Unity, поддерживает только до 3.5, поэтому я создал сборку 3.5, чтобы быть моим посредником. Я могу использовать сборку 3.5 в единстве, но любой из методов Type, которые я упоминал ранее, генерирует NotImplementedException (s), так как они, очевидно, не поддерживаются Unity (точнее, Mono), так что я нахожусь на потеря.
Есть идеи?