Ridichiarare le classi .net in IronPython
-
06-07-2019 - |
Domanda
Qualcuno può dirmi se è possibile dichiarare nuovamente una classe C # in IronPython? Se avessi una classe C #, sarei in grado di correggerlo da IronPython?
Soluzione
Non puoi scimmiottare patch da IronPython. IronPython tratta tutte le classi .NET proprio come CPython tratta i tipi predefiniti: non possono essere sottoposti a patch scimmia. IronRuby invece supporta questo.
Altri suggerimenti
Puoi applicare una patch scimmia da IronPython, ma IPy è l'unico ambiente che rispetterà le tue modifiche; vale a dire se provassi a deridere File.Create da IronPython, funzionerebbe bene per qualsiasi codice IPy, ma se avessi chiamato un metodo C # che chiamava File.Create, avrebbe ottenuto quello vero, non il finto.
Perché dovresti dichiararlo? Non avrebbe più senso sottoclassarlo o semplicemente crearne uno completamente nuovo classe?
EDIT: dai il tuo chiarimento, penso che ciò di cui hai effettivamente bisogno sia una corretta struttura di inversione del controllo (IOC), come Castle Windsor . Fondamentalmente, hai un'interfaccia di database, quindi configura il framework IOC per iniettare un vero database per la produzione e finto database per i test.