Внедрить оператор в существующий тип

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

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

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

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

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


person lboshuizen    schedule 14.11.2011    source источник


Ответы (1)


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

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

person svick    schedule 14.11.2011
comment
Мне кажется ясно, я уже пришел к такому выводу, но, возможно, я что-то упустил - person lboshuizen; 14.11.2011