Re[5]: Приоритет вызова перегруженных методов
От: Sinix  
Дата: 07.06.16 13:32
Оценка: 12 (1)
Здравствуйте, 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.

Я бы не заморачивался с как минимум до следующего релиза. Если конечно нет желания оседлать хайп и снять все сливки Риски соответствующие.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.