«Внедрить» оператор в существующий тип - PullRequest
3 голосов
/ 14 ноября 2011

Scriptsharp использует mscorlib 0.7.0.0, который имеет неявный оператор System.Number в int32. Я понимаю причину его появления, хотя я представляю, что компилятор может обработать преобразование по-другому.

Теперь я не могу использовать сгенерированный scriptsharp .Dll в другом проекте (без модульного тестирования), который использует стандарт .Net mscorlib. > 3.0.

> Method not found System.Int32._opImplicit(int32).

Есть ли способ "ввести" этот оператор через отражение?

Мой предыдущий вопрос принес мне еще одну ошибку, но этот ...

1 Ответ

1 голос
/ 14 ноября 2011

Вы не можете изменять типы, которые уже загружены в домен приложения.

Единственный способ сделать это - изменить mscorlib.dll, а затем использовать эту измененную версию. Библиотека Mono Cecil позволяет вам сделать именно это. Хотя это требует от вас иметь дело с CIL.

...