Здравствуйте, Serginio1, Вы писали:
S> Я хочу сделать по аналогии с Использование сборок .NET в 1С 7.x b 8.x.
А тут не имеет значения, что вы хотите. Важно только то, что поддерживается, т.е. C-style ABIs.
Зачатки COM Interop есть, но только под win.
Нужно что-то более изощрённое — придётся изобретать магию самому, что требует досконального знания как нативной части, так и кишков маршаллинга CoreCLR. Я, к примеру, за это не возьмусь, т.к. только на поверхностное изучение минимум пару недель придётся потратить.
S> То есть использование любых сборок из Натива.
В общем случае нереально. Не, если ограничиться структурами / делегатами и следить за временем жизни ссылок, то что-то может и получиться, но на "любых сборок" я бы не рассчитывал. Вам точно не достаточно того, что есть в
оф.справке, секция "Invoking managed code from unmanaged code"?
Если что, даже менее амбициозные замашки на c++ выглядят
как-то так.
S> Это все прекрасно работает в Win через COM и InvokeMember. Но есть желание перенести это все на Линукс.
Нельзя просто так взять и перенести COM на платформу, которая его не поддерживает. Ваш кэп
S>При вызове Метод(1,null) какой метод выбрать?
Простой способ: AmbigiousMatchException
Сложный способ — подрубаем DLR, как советовал выше
S>То в Core все через расширения
Core как такового нет. Есть RC, которое, как ВНЕЗАПНО выяснилось, несовместимо с 99% существующего кода и невнятные обещания binary compatibility для основных классов BCL, включая reflection.
Я бы не заморачивался с как минимум до следующего релиза. Если конечно нет желания оседлать хайп и снять все сливки
Риски соответствующие.