Pergunta

Alguém pode me dizer se é possível redeclare uma classe C # em IronPython? Se eu tiver uma classe C #, eu seria capaz de macaco patch-lo de IronPython?

Foi útil?

Solução

Você não pode monkey patch de IronPython. IronPython trata todas as classes .NET apenas como guloseimas CPython built-in tipos: eles não podem ser macaco remendado. IronRuby, por outro lado suporta isto.

Outras dicas

Você pode macaco-patch de IronPython, mas IPy é o único ambiente que respeite as suas alterações; ou seja, se você tentou zombar de File.Create de IronPython, isso iria funcionar bem para qualquer código IPy, mas se você chamou um método C # que chama File.Create, seria chegar a um real, não o mock.

Por que você redeclare isso? Não faria mais sentido subclasse-lo ou apenas fazer um totalmente novo classe?

EDIT: Dê ao seu esclarecimento, eu acho que você realmente precisa é uma inversão adequada de controle (COI) framework, como castelo de Windsor . Basicamente, você tem uma interface de banco de dados, em seguida, configurar o quadro COI para injetar um banco de dados real para a produção, e banco de dados fictícios para teste.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top