Переопределить классы .net в IronPython - PullRequest
1 голос
/ 17 июня 2009

Может кто-нибудь сказать мне, возможно ли переопределить класс C # в IronPython? Если у меня есть класс C #, смогу ли я сделать это из IronPython?

Ответы [ 3 ]

0 голосов
/ 24 июня 2009

Вы можете сделать monkey-patch из IronPython, но IPy - единственная среда, которая будет уважать ваши изменения; То есть, если вы попытаетесь смоделировать File.Create из IronPython, это будет хорошо работать для любого кода IPy, но если вы вызываете метод C #, который называется File.Create, он получит реальный, а не макет.

0 голосов
/ 01 июля 2010

Вы не можете обезьяньего патча от IronPython. IronPython обрабатывает все классы .NET так же, как CPython обрабатывает встроенные типы: они не могут быть исправлены обезьянами. IronRuby, с другой стороны, поддерживает это.

0 голосов
/ 17 июня 2009

С чего бы вы это объявили? Разве не имеет смысла подкласс его или просто создать совершенно новый класс?

РЕДАКТИРОВАТЬ: Дайте пояснение, я думаю, что вам на самом деле нужна правильная схема инверсии управления (IOC), такая как Castle Windsor . По сути, у вас есть интерфейс базы данных, затем сконфигурируйте инфраструктуру IOC для внедрения реальной базы данных для производства и пробную базу данных для тестирования.

...